我的C语言学习心得

我的C语言学习心得

位、字节和字

位(bit):可以容纳两个值,0或1
字节(byte):一个字节是8位
字(word):根据电脑而定,原始的Apple机是8位,现在的计算机是32位或64位

  • 不同的数据类型在不同的计算机中占用不同的字节,如int在32位平台的内存中占四个字节,而在16位平台的内存中占两个字节

i++与++i的区别

在for循环中,二者的实现结果是一样的,不同的是++i的速度更快,因为编译器不需要保存临时变量i,只有在做非常大的循环的时候才可能注意到这一点速度差异。

int a = 0;
int b = ++a;   //结果是 a = 1; b = 1;
}
{
int a = 0;
int b = a++;   //结果是 a = 1; b = 0;

i++ :先引用后增加,先在i所在的表达式中使用i的当前值,后让i加1
++i :先增加后引用,让i先加1,然后在i所在的表达式中使用i的新值

存储类


5种存储类

存储类 时期 作用域 链接 声明方式
自动 自动 代码块 代码块内
寄存器 自动 代码块 代码块内,使用关键字register
具有外部链接的静态 静态 文件 外部 所有函数之外
具有内部链接的静态 静态 文件 内部 所有函数之外,使用关键字static
空链接的静态 静态 代码块 代码块内,使用关键字static

自动存储类:属于自动存储类的变量具有自动存储时期、代码块作用域和空链接。默认情况下,在代码块或函数的头部定义的任意变量都输入自动存储类。也可使用关键字auto显式的表达,如下所示:

int main(void)
{
auto int plox;   // 等效于 int plot;
}

寄存器变量:寄存器变量多是存放在一个寄存器而非内存中,所以可以比普通变量更快的被访问和操作,但是寄存器是没有地址的。因此,除了无法获得寄存器变量的地址,在其它许多方面,寄存器变量和自动变量是一样的。通过使用关键字register可以声明寄存器变量。

具有外部链接的静态变量: 具有外部链接的静态变量具有文件作用域、外部链接和静态存储时期。这一类型有时被称为外部存储类(external storage class),这一类型的变量被称为外部变量(external variable)。把变量的定义声明放在所有函数之外,即创建了一个外部变量。在函数中使用外部变量时,通过关键字extern来再次声明它。如果变量是在别的文件中定义的,必须使用关键字extern来声明该变量。

具有内部链接的静态变量: 这种存储类的变量具有静态存储时期、文件作用域及内部链接。通过使用关键字static在所有函数外部定义。具有内部链接的静态变量只可以被与它在同一个文件中的函数使用。

空链接的静态变量: 用于具有代码块作用域的变量声明。使用关键字static进行声明。

猜你喜欢

转载自blog.csdn.net/xiaoyami/article/details/104135065