c语言变量声明,C语言变量声明因注意

1.声明指针
int *a;
int* a;
这两种声明的意思是一样的。
但是
int* b,c,d;
人们很自然的认为三个变量声明为指向整型的指针,但事实并非如此。其实b是个指针,其余两个是整型变量。
要声明三个指针,正确的语句是:int *b,*c,*d;
char *message="Hello world!";
看上去是赋给了表达式*message,事实上它是赋给了message本身。相当于:
char *message;
message="Hello world!";
2.隐式声明
函数如果不显式地声明返回值的类型,它就默认返回整型。当用旧风格声明函数的形式参数时,如果省略了参数的类型,编译器会默认它们为整型。最后,如果编译器可以得到充足的信息,推断出一条语句实际上是一个声明时,如果它缺少类型名,编译器会假定它为整型。但是,这不是一个好方法。
3.typedef声明与基本的声明相同,只是typedef关键字出现在声明的前面。
typedef char *ptr_to_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却被声明为一个字符。相当于:char * a,b;
4.常量的声明
int const a;
const int a;
这两条语句都把a声明为一个整型常量,它的值不能被修改
int *pi;
pi是一个普通的指向整型的指针。
int const *pci;
是一个指向整型常量的指针。可以修改指针的值,但不能修改它所指向的值。
int * const cpi;
pci是一个指向整型的常量指针。此时指针是常量,无法修改,但是可以修改它所指向的整型值。
int const * const cpci;
无论是指针本身还是指向的值都是常量,不允许修改。
Tags:  c语言变量 c语言定义变量 c语言静态变量 c语言全局变量 c语言变量声明

延伸阅读

最新评论

发表评论