C语言:32个关键字
(1)关键字
1. auto:声明自动变量,缺省时编译器一般默认为auto;最宽宏大量的关键字
2. int:声明整型变量
例如:
const int MAX_LENGTH =100;//这不是常量,而是一个只读变量。`
3. double:声明双精度变量
4. long:声明长整型变量
5. char:声明字符变量
单纯的char类型应该用于字符值的存储使用,唯一允许的操作就是赋值和相同运算符(=,==,!=),signed char和unsigned char型变量只能用于数值的存储与使用。
signed char 范围:-128 ~ 127
unsigned char 范围: 0 ~ 255
6. float:声明浮点型变量
7. short:声明短整形变量
不同类型之间的运算要注意精度扩展问题,一般低精度数据要向高精度数据扩展。
8. signed:声明有符号类型变量
9. unsigned:声明无符号类型变量
例如:
int main()
{signed char a[1000];int i;for(i=0;i<1000;i++){a[i] = -1-i;}printf('%d",strlrn(a));
return 0;
}
此时输出应该为255。
解析:signed char类型表示的值的范围是[-128 ,127],有符号数在内存中存储时先转换为二进制,对每一位取反(符号位不变),然后加1,当i=127时,a[127]的值为-128,当i继续增加,a[128]的值不能是-129,因为这时会发生溢出,因此最高位丢弃,剩下的8位是原来9位补码的低8位的值,当i继续增加到255时,-256补码的低8位为0,然后随着i的增加,开始了新一轮的循环。
**注意:**strlen函数是计算字符串长度的,并不包含字符串最后‘\0’,则认为本字符串结束。
10. struct:声明结构体变量;结构体所占内存大小是其成员所占内存之和。
11. union:声明联合数据类型变量;维护足够的空间来放置多个数据成员的“一种”,而不是为每一个数据成员配置空间,所有的数据成员具有相同的起始地址。一个union只配置一个足够大的空间来容纳最大长度的数据成员。
12. enum:声明枚举类型变量;enum变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依次加1,如果都没有赋值,他们的值从0开始依次递增1.
13. static:声明静态变量;最名不符实的关键字
主要作用:
1).修饰变量
静态全局变量:作用域从定义之处开始,到文件结尾处结束
静态局部变量:在函数体中定义时,只能在这个函数中使用,即使这个函数运行结束了,这个静态变量的值在函数下次使用时,仍然能用。
2).修饰函数
函数前面加static使得函数成为静态函数,此时函数的作用域仅限于本文本,使得不同的人编写不同的函数时,不用担心自己定义的函数是否与其它函数同名。
14. switch:用于开关变量
15. case:用于语句分支
注意:case 后面只能是整型或字符型常量表达式。
16. default:开关语句中的其他分支
注意:每个case语句的结尾绝对不要忘记加break,否则将导致多个分支重叠;最后必须使用default分支,即使程序不需要default处理;switch语句中禁止使用return 语句。
17. break:跳出当前循环;表示终止本层循环
18. continue:结束当前循环,开始下一轮循环。
19. register:声明寄存器变量;最快的关键字
register变量必须是能够被CPU寄存器所接受的类型,也就意味着register变量必须是一个单个的值,并且长度一个小于或者等于整型长度,而且不能用&来获取register变量的地址,因为此变量可能不存放在内存中。
20. const:声明只读变量,其修饰的只读变量必须在定义的同时初始化。
例如:
const int * p;//p可变,*p也就是p指向的对象不可变
int const * p;//p可变,p指向的对象不可变
int * const p;//p不可变,p指向的对象可变
const int * const p;//指针p和p指向的对象都不可变
21. volatile:说明变量在出现执行中可被隐含地改变 ;最易变的关键字
volatile 是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统,硬件或者其他线程等。
22. typedef:用以给数据类型取名
注意:
typedef int int32;
unsigned int32 j =10;
编译时会出错
#define INT32 int;
unsigned INT32 i =10;
编译时并没有报错,因为在预编译的时候INT32被替换为int,语句unsigned int i=10;是正确的。
23. extern:声明变量是在其他文件中声明;最会带帽子的关键字
24. return:子程序返回语句,用来终止一个函数并返回后面跟着的值
注意:return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被自动销毁。
25. void:声明函数无返回值或者无参数,声明空类型指针
作用:对函数返回值的限定,对函数参数的限定。众所周知,如果指针p1和p2的类型相同,我们可以直接在p1和p2之间互相赋值;如果p1和p2指向不同类型的数据 ,则必须进行强制类型转换运算符,**把赋值运算符右边指针的类型转换为左边指针的类型。**而void *则不同,任何类型的指针都可以直接复制给它,无需进行强制类型转换。
例如:
float *p1;
int *p2;
p1=(float * p2);//如果直接写为p1 = p2编译会出错void *p1;
int *p2;
p1 = p2;//“空类型”可以包容“有类型”void *p1;
int *p2;
p2 = p1;//“有类型”不能包括“空类型”,编译时会报错。
26. do:循环语句的循环体
27. while:循环语句的循环条件
28. for:一种循环语句
1).while 循环:先判断while 后面括号里面的值,如果为真则执行其后面的代码,否则不执行。while(1) 表示死循环,要注意它的使用。
2). do -while循环:先执行do后面的代码,然后判断while后面括号里的值,如果为真,循环开始,否则,循环不开始。
3).for循环:可以很容易控制循环次数,多用于事先知道循环次数的情况下。
29. if:条件语句
30. else:条件语句否定分支
31. goto:无条件跳转语句
goto语句可能跳过了变量的初始化,重要的计算等语句,因此提倡禁用goto语句。
32. sizeof:计算对象所占内存空间大小;最冤枉的关键字。
例如:32位系统
int *p =NULL;
sizeof(p)=4
sizeof (*p)=4
int a[100];
sizeof(a)=4
sizeof(a[100])=400
sizeof(&a)=4
sizeof(&a[0])=4
int b[100];
void fun(int b[100])
{sizeof(b);
}
此时sizeof(b)=4
(2)定义与声明
两者最重要的区别:定义创建了对象并为这个对象分配了内存;声明没有分配内存。
(3)循环语句的注意点
1.在多重循环中,尽量将最长的循环放在最内存,以减少CPU跨切循环层的次数
2.for语句的循环控制变量取值采用“半开半闭区间”
3.不能在for循环中修改循环变量,防止循环失控
4.循环尽可能短,解决办法:第一,重新设计这个循环,确认是否这些操纵都必须放在这个循环里面,第二,将这些代码改写成一个子循环,循环中调用这个子函数即可。
5.for语句控制表达式不能包括任何浮点类型的对象。
(4)void 指针
1.小心使用void指针类型
在实际的程序设计中,为了提高程序的可移植性,我们可如下编写代码:
void *pvoid;
(char *)pvoid ++;
(char *)pvoid +=1;
2.如果函数的参数可以是任意类型指针,那么应该声明其参数为 void *
典型的,例如:内存操作函数memcpy 和memset 的函数原型分别为:
void *memcpy(void * dest,const void *src,size_t len);
void *memset(void *buffer,int c,size_y num);
(4)大小端模式对union类型数据的影响
大端模式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端模式:字数据的高字节存储在高地址中,而字数据的低地址则存放在低地址中。
union型数据所占的空间等于其最大的成员所占的空间,对union型成员的存取都从相对于该联合体基地址的偏移量为0处开始,也就是联合体的访问不论对哪个变量的存取都是从union的首地址位置开始的。
C语言:32个关键字相关推荐
- C语言32个关键字与C++62个关键字详解
C语言32个关键字 关键字 说明 auto 声明自动变量 short 声明短整型变量或函数 int 声明整型变量或函数 long 声明长整型变量或函数 float 声明浮点型变量或函数 double ...
- C语言32个关键字总结
C语言32个关键字 第一类:数据类型关键字 A基本数据类型(5个) void 声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果. char 字符型类型数据,属于整型数据的一种. int 整 ...
- c语言音标字符,C语言32位关键字及音标
C语言32位关键及音标和解释 C 语言 32 位关键字及音标 关键字 auto int double long char float short signed unsigned struct unio ...
- 由ANSI标准定义的C语言关键字,C语言32个关键字详解
C语言中32个关键字详解 由ANSI标准定义的C语言关键字共32个: auto double int struct break else long switch case enum register ...
- C语言32个关键字-最详解释
C语言关键字,看这一篇就够了 一.数据类型关键字 二.控制语句关键字 三.存储类型关键字 四.其它关键字 五.表格汇总 在了解关键字之前,先要明确定义与声明的区别: 定义: 编译器创建一个对象,为这个 ...
- c语言goto语句用法_C语言32个关键字9种控制语句34种运算符整理
相信这么努力的你 已经星标了我 老九学堂 你身边的IT导师 32个关键字,如下表所示: 关键字 说明 auto 声明自动变量 short 声明短整型变量或函数 int 声明整型变量或函数 long 声 ...
- c语言32个关键字英文读音,C语言32个关键字读音及意义
总结了网友们的资料,把C语言中的32个关键字的读音及汉语意思加以归纳总结,希望对大家有帮助. C 语言中 32 个关键字读音及意义 R 棚水 整理 序号 1 2 3 4 5 6 7 8 9 10 11 ...
- 第2天 C语言32个关键字
数据类型修饰符13个 short.int.long.char.float.double short :声明短整型变量或函数 int: 声明整型变量或函数 long :声明长整型变量或函数 float: ...
- c语言关键字中文意思,C语言的32个关键字是什么意思啊
C语言的32个关键字是什么意思啊 32个关键字是什么意思有谁知道的要简洁一点的 更新时间:2019-06-03 22:54 最满意答案 1. 数据类型关键字(12个): (1). char :声明字符 ...
- C语言再学习--关键字
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/53021879 C语言一共有32个关键字,如下表所示: 关键字 说明 auto ...
最新文章
- 红书《题目与解读》第一章 数学 题解《ACM国际大学生程序设计竞赛题目与解读》
- java反编译工具jadclipse_java反编译工具jad及jadclipse
- pdfbox 按章节读取_2020年知到设施园艺学第十单元章节测试答案
- C++设计模试之S状态模式
- 只腐蚀毛刺 腐蚀算法_避坑干货!8大卫浴五金选购指南,只买对的不买贵的
- Eclipse 各版本版本号代号对应一览表
- php怎么学小程序,PHP学习之路之Hello World小程序
- css 中多种边框的实现小窍门
- ASP.NET Core 部署到Cont OS 服务器
- discuz门户文章增加代码高亮
- 小米路由R4A千兆版安装breed+OpenWRT教程以及救砖(全脚本无需硬改)
- 非常好用的桌面壁纸更换软件
- 软件工程英文参考文献(优秀范文105个)
- mq中消息消费的几种方式
- wallpaper engine怎么用?
- 华为折叠x2是鸿蒙系统吗,华为mateX2发布,鸿蒙系统四月上线,matex2首批搭载。...
- 蹭个热度:我只希望孩子心中有爱,眼里有光……
- 快速查找硬盘文件的工具
- 移动机器人中的现代控制理论之能控能观与稳定性
- Leetcode051--判断回文数(忽律大小写和非字符)