|||
Typedef:typedef声明的写法和普通声明基本相同,只是把typedef这个关键字出现在声名的前面,例如: char *ptr_to_char;把变量声明为一个指向字符的指针 ,但是添加关键字typedef后声明变为:typedef char *ptr_to_char,你可以在使用任何预定义名字一样在下面的声明中使用这个新名字: ptr_to_char a;声明a 是一个指向字符的指针。
创建新的类型名用typedef 而不是 #define ,因为后者无法正常的处理指针类型,如:
#define d_ptr_to_char char*
d_ptr_to_char a,b;
正确声明了a,但是b却被声明为了字符。
Const:
Int const a;
Const int a;两条语句都把a声明为一个整数,它的值不能被修改,当然,由于a的值无法被修改,所以你无法把任何东西赋值给它。
那么如何让它在开始有值呢?
方法一:首先可以在声明时对它初始化: int const a = 15;
方法二:在函数中声明为const的形参在函数被调用时会得到实参的值。
当涉及指针变量时,指针变量和它所指向的实体都有可能成为常量,下面是几个例子:
Int *pi; pi是是一个普通的指向整型的指针
Int const *pci; 是一个指向整型常量的指针,你可以修改指针的值,但不能修改它所指向的值。
Int *const pci; pci为一个指向整型的常量指针,此指针是常量,它的值无法修改,但你可以修改他指向的整型的值。
Int const *const pci; 在这个例子中无论是指针本身还是它所指向的值都是常量不允许修改。