(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个关键字相关推荐

  1. C语言32个关键字与C++62个关键字详解

    C语言32个关键字 关键字 说明 auto 声明自动变量 short 声明短整型变量或函数 int 声明整型变量或函数 long 声明长整型变量或函数 float 声明浮点型变量或函数 double ...

  2. C语言32个关键字总结

    C语言32个关键字  第一类:数据类型关键字 A基本数据类型(5个) void 声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果. char 字符型类型数据,属于整型数据的一种. int 整 ...

  3. c语言音标字符,C语言32位关键字及音标

    C语言32位关键及音标和解释 C 语言 32 位关键字及音标 关键字 auto int double long char float short signed unsigned struct unio ...

  4. 由ANSI标准定义的C语言关键字,C语言32个关键字详解

    C语言中32个关键字详解 由ANSI标准定义的C语言关键字共32个: auto double int struct break else long switch case enum register ...

  5. C语言32个关键字-最详解释

    C语言关键字,看这一篇就够了 一.数据类型关键字 二.控制语句关键字 三.存储类型关键字 四.其它关键字 五.表格汇总 在了解关键字之前,先要明确定义与声明的区别: 定义: 编译器创建一个对象,为这个 ...

  6. c语言goto语句用法_C语言32个关键字9种控制语句34种运算符整理

    相信这么努力的你 已经星标了我 老九学堂 你身边的IT导师 32个关键字,如下表所示: 关键字 说明 auto 声明自动变量 short 声明短整型变量或函数 int 声明整型变量或函数 long 声 ...

  7. c语言32个关键字英文读音,C语言32个关键字读音及意义

    总结了网友们的资料,把C语言中的32个关键字的读音及汉语意思加以归纳总结,希望对大家有帮助. C 语言中 32 个关键字读音及意义 R 棚水 整理 序号 1 2 3 4 5 6 7 8 9 10 11 ...

  8. 第2天 C语言32个关键字

    数据类型修饰符13个 short.int.long.char.float.double short :声明短整型变量或函数 int: 声明整型变量或函数 long :声明长整型变量或函数 float: ...

  9. c语言关键字中文意思,C语言的32个关键字是什么意思啊

    C语言的32个关键字是什么意思啊 32个关键字是什么意思有谁知道的要简洁一点的 更新时间:2019-06-03 22:54 最满意答案 1. 数据类型关键字(12个): (1). char :声明字符 ...

  10. C语言再学习--关键字

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/53021879 C语言一共有32个关键字,如下表所示: 关键字 说明 auto ...

最新文章

  1. 红书《题目与解读》第一章 数学 题解《ACM国际大学生程序设计竞赛题目与解读》
  2. java反编译工具jadclipse_java反编译工具jad及jadclipse
  3. pdfbox 按章节读取_2020年知到设施园艺学第十单元章节测试答案
  4. C++设计模试之S状态模式
  5. 只腐蚀毛刺 腐蚀算法_避坑干货!8大卫浴五金选购指南,只买对的不买贵的
  6. Eclipse 各版本版本号代号对应一览表
  7. php怎么学小程序,PHP学习之路之Hello World小程序
  8. css 中多种边框的实现小窍门
  9. ASP.NET Core 部署到Cont OS 服务器
  10. discuz门户文章增加代码高亮
  11. 小米路由R4A千兆版安装breed+OpenWRT教程以及救砖(全脚本无需硬改)
  12. 非常好用的桌面壁纸更换软件
  13. 软件工程英文参考文献(优秀范文105个)
  14. mq中消息消费的几种方式
  15. wallpaper engine怎么用?
  16. 华为折叠x2是鸿蒙系统吗,华为mateX2发布,鸿蒙系统四月上线,matex2首批搭载。...
  17. 蹭个热度:我只希望孩子心中有爱,眼里有光……
  18. 快速查找硬盘文件的工具
  19. 移动机器人中的现代控制理论之能控能观与稳定性
  20. Leetcode051--判断回文数(忽律大小写和非字符)

热门文章

  1. java性能优化权威指南_《Java性能优化权威指南》PDF 下载
  2. CCS软件下载安装教程
  3. 强大的音频、视频嗅探式下载工具,还自带浏览器
  4. 【问链财经-区块链基础知识系列】 第十六课 区块链将变革教育产业,未来有六大应用方向
  5. c语言编译器turbo,C语言编译器TurboC使用技巧解析
  6. 最好用的三款epub阅读器
  7. C语言程序设计(第2版)课后答案
  8. EDA技术实用教程VHDL篇--名词释义
  9. 嵌入式课程设计-- 电子时钟
  10. 【Tkinter界面化小程序】用Python做一款免费音乐下载器、无广告无弹窗、清爽超流畅哦~