【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];
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];
相关文章推荐
- 【动态规划】最长公共子序列(并续)
- C++ 访问范围说明符
- C++异常处理机制几种方法
- c++中栈与队列的实现
- C++四种类型转换的关键字及其特点
- c++第3次实验—作业
- IIS7安装PHP-5.3.27教程, Visual C++ 2008(x86,x64)
- 以前用C语言编写的生成随机数的猜数字小游戏
- NOI 193棋盘分割.cpp
- 最小二乘法拟合直线
- C++ STL中Map的按Key排序和按Value排序
- C/C++——strcpy函数的实现
- 三种单例模式的C++实现
- C++定义的时钟类(主要是类的定义、数据成员、成员函数的定义,类对象的定义及对象之间的赋值的简单例子)
- [Hihocoder 1289] 403 Forbidden (微软2016校园招聘4月在线笔试)
- 【图论-二分图】学生的住宿
- C++学习之旅
- NOI 191钉子和小球.cpp
- Invalid arguments ' Candidates are: int fseek(__sFILE *, long int, int) '
- C++服务器(七):Windows 下配置pthread