【C语言入门知识】C语言32个关键字9条语句
C语言32个关键字如下图:
一、基本数据类型
1、unsigned :无符号的 ---用来声明一个无符号的变量
例如:unsigned char var; /var的范围:0~255
2、signed :有符号的(可以省略不写) ---用来声明一个有符号的变量
例如:signed char var; /var的范围:-128~127
3、char :字符型---用来声明一个字符型变量,占一个字节(8bit)空间
例如:char var=1; /var的范围:-128~127
4、int :整型---用来声明一个整型变量,C51:占两个字节空间,ARM:占四个字节
例如:int var=1;
5、float :浮点型---用来声明一个浮点型(实型)变量,最多能表示到7个有效数据位,占四个字节空间。
例如:float var=1.23;
6、double :双精度型---用来声明一个双精度实型变量,最多能表示到15~16个有效数据位,占四个字节空间
,有的系统占八个字节.
例如: double var=2.321;
7、short :短整型---用来声明一个短整型变量,C51:跟int一样,ARM:占两个字节
例如: short var=1;
8、long :长整型 ---用来声明一个长整型变量,ARM:跟int一样,C51:占四个字节
例如:long var=1;
9、void :空型----表示一个函数没有返回值,或者无形参
例如:void function(void);
二、构造数据类型
1、struct ---用来声明一种结构体类型
例如:
struct stu
{
char sex;
int age;
float score;
struct stu *Next;
};
struct stu var;
2、union---用来声明一种共用体类型
例如:
union non
{
char sex;
int age;
float score;
};
union non var;
3、enum---用来声明一种枚举类型,规定枚举类型的变量,只能在限定的范围内取值, 否则,编译会出现警告
例如:
enum em
{
a = 23,
b,
c,
d = 56,
e
}; /b=24,c=25,e=57
enum em var;
三、数据的存储类别
1、auto
:自动的(一般省略不写)---定义一个局部变量,默认为auto类型的,当它所在的函数调用结束时,释放内存使用时才分配内存,用完即释放。
例如:auto char var;
2、static :静态的
①定义一个局部变量,该变量在定义时只进行一次初始化,以后每次调用它所在的函数,其值
都会保持上一次调用的结果,它所在的空间不会被释放
②被static修饰的全局变量,则只能在它所在的C源文件中使用,其它文件不能调用,(内部全局变量)
③被static修饰的函数,只能在该函数所在的C源文件中被调用,其它文件不能调用,(内部函数)
例如:
static char var;
static void function();
3、extern :外部的
①想要调用别的C源文件中的某一个全局变量,可以使用该关键字在该文件中修饰声明该变量即可调用(前提是该变量没有被static修饰)该类型的变量也是一直占着内存不释放
②想要调用别的C源文件中的某一个函数,可以使用该关键字在该文件中修饰声明该函数
即可调用(前提是该函数没有被static修饰)
例如:
extern char var;
extern void function();
4、register :寄存器的
被这个关键字修饰的变量,建议编译器将该变量在使用时放到CPU内部寄存器中,以提高执行效率
注意:该关键字只是建议,到底有没有将变量放到寄存器中无从得知。一般使用在循环次数比较多的地方。在使用时才分配内存,用完即释放
例如:
register long i = 30000;
5、const :常的
常变量:被const关键字声明的变量,其值不能被改变。即在声明该变量时必须要初始化该变量。
var本身还是一个变量。
const char var = 100;
例如:
char *const p;
/指针变量p不可改变,但是它指向的地址里面的值可变
char const *p; 或 const char *p;
/指针变量p可以改变,但是它所指向的地址里面的值不能改变
const char * const p;
/p地址不可改变,里面的值也不能变
6、volatile :随时会改变的
被volatile修饰的变量或寄存器会意想不到地发生改变。
①某些变量或寄存器(如状态寄存器)可能会受硬件影响;
②在多线程任务中,被其它线程修改(共享内存段);
③编译器会对C程序进行优化;
为了保证程序不被优化,保证CPU取到的数据是最新的(即提醒CPU每次都必须到内存中取出变量当前的值而不是取cache或者寄存器中的备份),使用该关键字修饰。
四、9条语句
四种结构:
1、顺序结构:0条
2、选择结构:2条
①、if -else if -else if ... else
例如:
if(表达式1)
{
语句s;
}
else if(表达式2)
{
语句s;
}
else if(表达式3)
{
语句s;
}
else
{
语句s;
}
用法:顺序判断if后的表达式是否为真如果碰到为真的情况,则执行其下面的{}里的语句执行完后,即退出这个多选一的结构。
②、switch-case-break
例如:
switch(变量)
{
case 常量1:语句;...;break;
case 常量2:语句;...;break;
case 常量3:语句;...;break;
default:语句;
}
用法:顺序判断变量是否与常量相等,如果相等,则执行该常量:后的语句s,遇到break即跳出这个结构。
3、循环结构:3条
①、for
例如:
for(语句1;语句2;语句3)
{
语句4;
语句...;
}
用法:语句1:条件初始化,语句2:判断语句,判断是否成立,语句3:增值语句先执行语句1,再进行对语句2的判断,如果成立则执行{}里的语句4...,再执行语句3,在判断语句2是否依然成立,。当语句2不成立时,结束循环。
②、while
例如:
while(表达式)
{
语句;
....;
}
用法:先判断“表达式”是否成立,如果成立则执行{}里的语句,执行完再次判断“表达式”是否依然成立,成立则继续执行{},不成立则结束此循环结构。
③、do-while
例如:
do
{
语句1;
...;
}while(表达式);
用法:先执行{}里的语句,执行完后,判断表达式是否成立,如果成立,继续执行{};如果不成立,则结束循环。
4、转移结构:4条
①、break
例如:
while(t--)
{
dat++;
if(dat == 3)
break;/跳出while()结构。
}
用法:仅用于跳出循环结构,且仅能跳出一层循环结构。
②、continue
例如:
char buf = 10;
while(buf--)
{
a++;
b++;
continue;/遇到continue则结束这次循环
d++; /这条永远都不会执行到
e++; /这条永远都不会执行到
}
用法:用于终止本次循环,继续从下次循环开始。
③、goto
例如:
unsigned char dat=10;
while(dat--)
{
a++;
b++;
Lable: c++;
if(c == 3)
goto Lable;/直接跳到Lable标号去
d++;
}
用法:无条件转移,直接跳到Lable标号去运行。
④、return
例如:
void function()
{
char a,b;
a++;
return; /遇到return即返回调用处
b++; /不会被执行
return; /不会被执行
}
用法:用于函数返回,在函数调用时,遇到return即返回。如果需要返回某个值,在其后加上返回值。返回值类型必须和函数类型一致。
五、其它:
1、typedef : 类型重定义(重新起名)
例如:
typedef unsigned char uchar;
/用uchar重新定义unsigned char
2、sizeof---用来求类型所占的字节数
例如:
int var = 10;
char g;
g = sizeof(var++);/g = 4;
免责声明:本文系网络转载,版权归原作者所有。如涉及版权,请联系删除!
如果喜欢这篇文章,欢迎在文章底部点赞,欢迎关注航天惯性导航软件!