关闭

C语言总结之基本声明

标签: c语言总结c声明
552人阅读 评论(0) 收藏 举报
分类:

1.引言

变量声明的基本形式:

说明符(一个或多个) 声明表达式列表;


说明符(specifier)包含一些关键字,用于描述被声明的标识符的基本类型。说明符也可以改变标识符[1]的默认存储类型(关键字为auto、代码块内的static、register)和作用域(关键字为extern、代码块外的static)。


注:[1]标识符:标识符(identifier)就是变量、函数和类型等的名字。


2.初始化

在一个声明中,可以给一个标量变量指定一个初始值,例如:

int i = 15;

3.声明简单数组

声明一个一维数组时。要在数组名后面跟一对方括号,方括号里面是一个整数,指定数组中元素的个数。例如:

int array[10];

其中array是数组名。array是int的数组,元素有10个。


3.声明指针

在C语言中的声明中,先给出一个基本类型,再跟一个标识符列表,这些标识符组成表达式,用于产生基本类型的变量。例如:
int *p;
这条语句表示表达式*p产生的见过类型是int。*操作符是解引用的意思,执行的是间接访问(indirection)操作,所以p是一个指向int的指针。

3.1 注意

int* p;
int *p;
是同一个意思,除了代码风格外没有任何差别。
但是,我们更习惯与使用第二种,因为:
int* a,b,c;
 这里声明的不是a、b、c三个指针,声明的是一个指向int的指针a,两个int类型的变量b和变量c。要想正确声明三个指针,应该这样:
int *a,*b,*c;

备注:星号操作符的结合性是自右向左的。

3.2 初始化

在声明指针变量的时候,也可以为它指定初始值。
int a;
int *p = &a;

上面的语句相当于
int a;
int *p;
p = &a;

使用「int *p = &a; 」的时候,千万不要以为是对*p赋值,实际上还是对指针变量p赋值。

4.隐式声明

C语言中有几种声明,它的类型名可以省略。例如:
一、函数如果不显式地声明返回值的类型,它就默认返回整型(int);
二、当你使用旧风格声明函数的形式参数时,如果省略了参数的类型,编译器就会默认它们为整型。
三、如果编译器可以推断出一条语句是一个声明语句时,并且这条语句缺少类型名,那么编译器就会假定它为整型。

但是我们不能依赖隐式声明,这会给后面阅读代码的人造成困扰。


5.扩展

除了上面的普通变量、数组和指针的基本声明,还有聚合类型和函数等其他声明,这以后在相关章节中再进行总结。



参考资料:
Reek K A, 徐波. C 和指针[M]. 人民邮电出版社, 2008.
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:364505次
    • 积分:5059
    • 等级:
    • 排名:第6142名
    • 原创:155篇
    • 转载:21篇
    • 译文:2篇
    • 评论:234条