关键字的一些计算

static      i=11j=1.

关键字的一些计算

sizeof

关键字的一些计算

signed unsigned 

编译器缺省默认情况下数据为signed类型。

 关键字的一些计算


-0+0在内存中存储方式一样,均为0000  0000

因为-1 的存储方式为 1111 1111 -0-11,即为

1 0000 0000。但是整型只有四个字节,最高位被舍弃。

所以+0-0的存储方式一样

空指针是没有指向的指针,将暂时用不到的指针定义成空指针,以防止误用。

void *可以指向任何类型的指针。

值的类型并非值本身所固有的一种特性,而是取决于它的使用方式。

不能返回栈内存”的指针,因为该内存在函数结束时会自动被销毁。

return;表示退出函数,什么也不返回。

return有带参数的和不带参数的两种,带的参数为返回值,不带就表示退出函数。

enum

#include  

#include


enum Color

{

GREEN=1,

BLACK,

RED

}ColorVal;//凡被说明为color类型的变量的值只能是该取值范围中的一个。


int main()

{

printf("%d\n",sizeof(ColorVal));//4

 

}

 const修饰的依然是变量,编译时不能使用,因为编译器并不知道其存储的内容,不会为它分配存储空间,将它保存在符号表中。只不过是常变量(只读变量),其值不能再修改。

必须在定义的同时进行初始化。

const节省空间,避免不必要的内存分配,同时提高效率。

 

volatile:用它修饰的变量表示可以被某些编译器的未知的因素更改,比如操作系统、硬件或者其它线程等。

编译器在访问被volatile关键字修饰的变量的代码时,不再进行优化。从而可以提供对特殊地址的稳定访问。

一个变量同时被constvolatile同时修改,表明这个对象体现常量语义,但同时可能被当前对象所在程序上下文意外的情况被修改。

函数声明。void  fun();

空结构体为1个字节(内存最小单位)。

union的成员默认情况下是public的。

struct的成员默认情况下是public的。

class的成员默认情况下是private的。

typedef:为一种已经存在的数据类型取一个别名。

编译器会将注释剔除,并用空格来代替原来的注释。