(11)常见关键字
C语言内制定的关键字可以直接拿来用。
有:
auto break case char const continue default do double else enumextern float for goto if int long register return short signedsizeof static struct switch typedef union unsigned void volatile while
如:已知int a=10;中a是局部变量,且作用域在代码块内,又因出代码块后a就不起作用了;又因这个a是自动创建自动销毁,所以我们也把这个a叫作自动变量。
1、在循环语句中break可以停止循环;2、在swith case语句中会用到。
char——字符类型const——常变量continue——继续(在循环里运用)default——默认do——do while循环double——double类型else——if else语句enum——枚举extern——引入外部符号float——单精度浮点数for——for循环goto——goto语句if——if语句int——整形long——长整形register——寄存器
1、硬盘 2、内存 3、寄存器 4、高速缓存
访问速度越快,造价越高,所占空间大小越小。
return——返回short——短整型signed——有符号unsigned——无符号
当然,我们 既然能定义有符号数字,那我们也可以定义无符号数字。
sizeof——用来计算大小的static——静态的struct——结构体关键字switch——switch case语句typedef——类型定义union——联合体void——无或空volatile(后期讲操作系统时会介绍到,这个关键字是体现C语言段位的关键字)while——while循环【注:关键字不能跟变量相冲突,且要记忆关键字】
关键字typedef
unsigned int num=20;——无符号整形num
关键字static
1、修饰局部变量——静态局部变量2、修饰全局变量——静态全局变量3、修饰函数——静态函数
void test(){
int a=1;
a++;
printf("a=%d\n",a);
}
int main(){
int i=0;
while(i<5){
test();
i++;
}
return 0;
}
打印结果为5个a=2;(具体原因,自行理解)
如果我们将这代码修改一下,把int a=1;改为——static int a=1;(这时a是一个静态的局部变量了)
这时,打印结果为a=2;a=3;a=4;a=5;a=6;(这里发现a++累计下来了,a不销毁了,保留了上一个值)
【注:static修饰全局变量是让静态的全局变量只能在自己所在的源文件内部使用】
extern关键字是用来声明外部符号的
比如:
我在第一个源文件test.c中编写——
int main(){
extern int g_val;
printf("g_val=%d\n",g_val);
return 0;
}
这时,我在第二源文件add.c中编写——
int g_val=2020;
因为有extern关键字用来声明外部符号,所以可以运行(之前有讲过)
但若我们这时加上static——static int g_val=2020;(这时就会出现错误了)
【注:全局变量只要在其他源文件内部进行外部声明,可以完全很好地使用。】
函数也类似
add.c源文件
int Add(int x,int y){
int z=x+y;
return z;
}
声明外部函数——
test.c源文件
extern int Add(int,int);
int main(){
int a=10;
int b=20;
int sum=Add(a,b);
printf("sum=%d\n",sum);
return 0;
}
这时,如果加上static——static int Add(int x,inty)就会报错。
普通函数是有外部链接属性的,外部的其他源文件要想使用,声明一下就可以使用;
但被static修饰后,外部链接属性就变成内部链接属性了。
(12)#define定义常量和宏
define定义标识符常量
如:#define MAX 100——是指定义MAX的值为100
这样以后再写代码时,遇到MAX会认作100
#define MAX 100
int main(){
int a=MAX;
return 0;
}
打印结果为100
#define可以定义宏——“宏”是带参数的
如:比较大小时可以用函数的方法,也可以用“宏的方式”。
#define MAX(x,y)(x>y?x:y)
这里max=MAX(a,b)可以理解为max=(a>b?a:b)
(后期详讲)