关键字的一些计算
static i=11,j=1.
sizeof
signed unsigned :
编译器缺省默认情况下数据为signed类型。
-0和+0在内存中存储方式一样,均为0000 0000
因为-1 的存储方式为 1111 1111 -0比-1大1,即为
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节省空间,避免不必要的内存分配,同时提高效率。
volatile:用它修饰的变量表示可以被某些编译器的未知的因素更改,比如操作系统、硬件或者其它线程等。
编译器在访问被volatile关键字修饰的变量的代码时,不再进行优化。从而可以提供对特殊地址的稳定访问。
一个变量同时被const和volatile同时修改,表明这个对象体现常量语义,但同时可能被当前对象所在程序上下文意外的情况被修改。
函数声明。void fun();
空结构体为1个字节(内存最小单位)。
union的成员默认情况下是public的。
struct的成员默认情况下是public的。
class的成员默认情况下是private的。
typedef:为一种已经存在的数据类型取一个别名。
编译器会将注释剔除,并用空格来代替原来的注释。