您的位置:首页 > 编程语言 > C语言/C++

【C语言】总结C语言深度剖析

2016-04-09 11:06 405 查看
C语言深度剖析

sizeof是关键字而不是函数

break终止本层循环。continue终止本次循环、

柔性数组,数组的大小为0的数组,一般用于结构体内部的最后一个数据,用来动态扩展结构体大小。

union关键字,sizeof()确定的大小是其内部最大成员的占据空间。内部成员都是从地址的开始处偏移。

C语言的struct 内部数据默认是私有的,而class内部成员默认为公有的。

大端:低地址存放高字节数据。小段:低地址存放低字节数据

空结构体的大小为1;而不是0;

枚举和#define的区别:

1.#define宏是在预编译的阶段进行宏替换的,枚举常量则是在编译阶段确定其值。

2.枚举可以一次定义大量相关的常量,#define只能定义一个,

typeded 只是给一个类型去了一个别名。

无符号数和有符号数进行操作时,有符号数会隐式转换为无符号数。

const 关键字在C语言中描述“只读变量”,记住是变量所以总是会开辟空间来存储。

而在c++中,他就是一个常量,存储在文本段。

具体内容可以参考我的这篇总结点击打开链接

C中的const默认为外连接,所以总是会为其分配内存空间。这就意味着,在C中

const int bufsize = 100;

在编译期间,编译器并不知道 bufsize的值。所以,下面的代码有误:

const int bufsize = 100;

char buf[bufsize]; // errno

C++中,const默认使用内部连接.而C中使用外部连接.

内连接:编译器只对正被编译的文件创建存储空间,别的文件可以使用相同的表示符

或全局变量.C/C++中内连接使用static关键字指定.

外连接:所有被编译过的文件创建一片单独存储空间.一旦空间被创建,连接器必须解

决对这片存储空间的引用.全局变量和函数使用外部连接.通过extern关键

字声明,可以从其他文件访问相应的变量和函数.

voliate关键字,被其修饰的变量,编译器取消了优化操作。

指针和数组区别于联系:

区别:

指针就是指针,在32位系统下,他的大小是4字节,其值是一个指向某块内存地址,指针可以指向任何一块内存,但是并不是任何地方你都可以访问的。

数组就是数组,数组的大小和其存储的数据类型和元素个数有关,定义时必须指定数组的大小和元素类型。

相似点:

指针和数组是完全不同的东西,只是它们都可以“以指针的形式”或者“以”下标的形式“进行访问而已。

指针数组与数组指针;

指针数组:int *P[10];

数组指针:int (*P)[10];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: