C语言中,仅有4种基本数据类型-整形,浮点型,指针和聚合类型(数组和结构)
short int 至少16位,long int 至少32位
头文件 limits.h说明了各种不同的整型类型的特点
常量不能修改但是可以通过
char *message="Hello World" < => char *message; message="Hello World";
int const a;<=> const int a;
//看上去是将初始值赋给*message,其实是赋值给message本身
char *message = "Hello World" ;
typedef char *ptr_to_char;
ptr_to_char a; //a是一个指向字符的指针
//typedef 与#define相比,typedef可以处理指针类型的声明
const int a1 = 0;
int const a2 = 1;
int *pi;//pi->指向整形的指针
int const *pci;//指向整形常量的指针,可修改指针的值,不可以修改它所指向的值
int *const cpi=0;//指向整形的常量指针,此时指针是常量,它的值无法修改,可修改它指向的整形值
//左定值(指针指向的值不可修改),右定向(指针不可修改)
int a = 248, b = 4;
int const c = 21;
const int *d = &a;
int * const e = &b;
int const * const f = &a;
//c = 32;
//*d = 43;
//e = &a;
//f = 0x321f;
//d = &b;
四种不同的作用域:文件作用域,函数作用域,代码块作用域,原型作用域
代码块作用域: 一对花括号之间{},内层代码块作用域会隐藏同名的外层的标识符
文件作用域: 任何在代码块作用域之外的都成为文件作用域
原型作用域:只适用于函数原型声明的参数名
函数作用域:只适用于语句标签,语句标签用于goto语句(一个函数中,所有语句标签必须一致),尽量不用
连接属性:external(外部) internal (内部) none(无)
函数的形参不能声明为static,因为实参要在堆栈中传递给函数,用于支持递归
具有external连接属性的实体在所有文件的所有实体中,都可以访问,只要变量并非声明于代码块或
函数定义内部,他在缺省的情况下连接属性都是external,
具有external连接属性的实体总有静态存储类型