C/C++ 知识点

1.C语言关键字(32个)

<1>.基本数据类型 [5]

void  :声明函数无返回值或无参数,声明空类型指针

char  :声明字符型变量

int   :声明整形变量

float  :声明浮点型变量

double :声明双精度变量

<2>.类型修饰关键字[4]

shot  :声明短整型变量

long  :声明双长整型变量

signed   :声明有符号类型变量

unsigned:声明无符号类型变量

<3>.复杂类型关键字[4]

struct  :声明结构体变量

union   :声明联合数据类型

enum   :声明枚举类型

typedef  :用于数据类型取别名及其他用途

sizeof    :计算对象所占内存空间大小

<4>.存储级别关键字[6]

auto  :声明自动变量,一般编译器默认为缺省时为auto,通常在栈上分配

static   :声明静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部

register  :声明寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数

extern  :声明外部变量或引用,编译器遇到此变量和函数时在其他模块中寻找其定义

const  :声明只读变量,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)

volatile  :说明变量在程序执行中可被隐式改变,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值

<5>.控制流关键字[13]

---跳转---

return  :子程序返回语句

continue :结束当前循环,开始下一轮循环

break   :跳出当前循环

goto    :无条件跳转语句

---分支---

if    :条件语句

else    :条件语句否定分支(与if连用)

switch   :开关语句

case   :开关语句分支

default  :开关语句“其他”分支

---循环---

for  :其中一种循环语句

do  :循环语句的循环体

while :循环语句的循环条件

2.static关键字

static关键字主要用于修饰局部静态变量、全局静态变量/函数,以及静态数据成员/成员函数(C++),主要起到生存期和作用域的限制作用及类中的唯一性;
<1>.按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区;
按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效;
也就是说把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围;
<2>.static函数在内存中只有一份,而普通函数在每个被调用中维持一份拷贝,函数前加static使得函数成为静态函数(内部函数),这时它的作用域仅局限于本文件;
<3>.类的静态成员函数只能访问类的静态成员(变量或函数);静态数据成员则标识变量/函数在此类中的唯一性,对此而言,成员函数不管是否是static,在内存中只有一个副本,普通成员函数调用时,需要传入this指针,static成员函数调用时,没有this指针;

3.extern关键字

extern关键字置于变量或函数前,用于提示编译器该变量或者函数在其他文件中定义,另外用来进行链接指定(extern "C"),告诉链接器在链接时用C函数规范来链接,解决编译生成的目标代码中名字匹配问题;
另外extern的使用要严格对应声明时的格式,例如源文件定义了数组类型char T[ARRAY_NUM],再另外的文件中如果声明用extern char *T,会导致非法内存访问错误,因为指向类型T的指针并不等价于类型T的数组,应该改为:extern char T[];

C/C++ 知识点---C语言关键字(32个)的更多相关文章

  1. C语言的32个关键字

    由ANSI标准定义的C语言关键字共个: auto double int struct break else long switch case enum register typedef char ex ...

  2. FILE不是C语言关键字

    FILE不是C语言关键字,只是标准C中的标准输入输出中定义的一个新的数据类型 stdio.htypedef struct _iobuf{ char* _ptr; int _cnt; char* _ba ...

  3. 李洪强漫谈iOS开发[C语言-009] - C语言关键字

    // //  main.m //  04 - C语言关键字 // //  Created by vic fan on 16/7/12. //  Copyright © 2016年 李洪强. All r ...

  4. c语言关键字总结

    1.关键字变更历史 1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字: inline restrict _Bool _Complex _Imaginary(注意bool 从 ...

  5. 1.C语言关键字(auto break case char const swtich)

    ANSI C标准C语言共有32个关键字,分别为: auto break case char const continue default do double else enum extern floa ...

  6. 回首C语言关键字(~回首向来萧瑟处~)

    开篇废话: 本文意在回顾 C 语言中的关键字,整理文件发现当时做的这些笔记还是蛮用心的,有临摹 前辈的足迹也有自己的理解和体会.时至今日2018已经跨过一半,对不起过去半年,今天 拿这篇关键字开篇,开 ...

  7. C语言关键字之sizeof

    C语言关键字 sizeof 是一个操作符,返回对象或类型所占内存字节数,类型为size_t(定义在<stddef.h>),有2种用法: sizeof unary-expression si ...

  8. C语言关键字-volatile

    1.C语言关键字volatile     C 语言关键字volatile(注意它是用来修饰变量而不是上面介绍的__volatile__)表明某个变量的值可能在外部被改变,因此对这些变量的存取 不能缓存 ...

  9. 执行Go程序的三种方式及Go语言关键字

    执行 Go 程序的三种方式及 Go 语言关键字 执行 Go 程序的三种方式 一.使用 go run 命令 二.使用 go build 命令 Step1. 对 go 源码源文件执行 go build 命 ...

随机推荐

  1. day4作业小代码练习

    登录模块: 我们无论上那个网站,经常遇到这样的情况,让我们登录这个网站,流程图如下: 思路: 1.当我们登录网站的时候,我们首先会输入用户名,这个时候,有些网站会提醒我们用户名是否存在,如果我们输入的 ...

  2. Spring中对资源的读取支持

    Resource简单介绍 注:所有操作基于配置好的Spring开发环境中. 在Spring中,最为核心的部分就是applicationContext.xml文件,而此配置文件中字符串的功能发挥到了极致 ...

  3. (转载)DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较

    原文链接: http://blog.csdn.net/miclung/article/details/7231553    简介   使用评价  项目主页  DBCP DBCP是一个依赖Jakarta ...

  4. php---tp框架---表单验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.分为静态验证和动态验证. 关于基础知识,请查看手册"自动验证"一章 ...

  5. java 数据库编程 学习笔记 不断更新

    最近开始学习java,感觉java的数据库编程需要发个随笔记录一下,话不多说 切入正题. 一.数据库访问技术的简介 应用程序  →  执行SQL语句 →数据库 → 检索数据结果 → 应用程序   ( ...

  6. Samba远程代码执行漏洞(CVE-2017-7494)本地复现

    一.复现环境搭建 搭建Debian和kali两个虚拟机: 攻击机:kali (192.168.217.162): 靶机:debian (192.168.217.150). 二.Debian安装并配置s ...

  7. 100+个MySQL调试和优化技巧

    MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些思 ...

  8. C实现dos图文菜单程序实例

      前言 公司一台服务器是novell环境,文件管理是基于dos6.22的,客户端启动需要一个图文菜单.   实现    编程环境:汉化版TC2.0 菜单基本功能:显示提示项.显示dbf中的行情信息. ...

  9. 【Data Visual】一文搞懂matplotlib数据可视化

    一文搞懂matplotlib数据可视化 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为 ...

  10. Android studio中找不到so文件的问题:java.lang.UnsatisfiedLinkError

    解决Android studio中找不到so文件的问题:java.lang.UnsatisfiedLinkError 表示我们不编译jni代码,直接从libs里面复制so库 文件路径:app\buil ...