C语言初阶-《期末不挂科》C语言中的关键字详解

C语言初阶-《期末不挂科》C语言中的关键字详解,第1张

C语言初阶-《期末不挂科》C语言中的关键字详解

看之前记得点赞收藏加关注呦!谢谢大家啦

目录

一、C语言中的关键字

1.auto

2.break

3.case

4.char

5.int

6.float

7.short

8.double

9.long

10.signed和unsigned

11.struct

12.union

13.enum

 14.static

15.switch

16.default

17. do

18. while

19. for

20. if

21. else

22. goto

23. sizeof

24. extern

25. return

26. void

27.const

28.register

29.continue

30.volatile

31. typedef


一、C语言中的关键字
1.auto

在C语言中,使用 auto 修饰的变量,是具有自动存储器的局部变量,但很少有人去使用它,在C++11中,auto 有了新的含义,它不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto 声明的变量必须由编译器在编译时期推导而得。

这里附上一段代码

注意:auto就是一个占位符,编译器会根据初始化来推演出类型,填充位置,所以auto必须要初始化  

2.break

1.break如果用于循环则终止循环

2.break用于switch则终止switch

3.break不能直接用于if,除非if属于循环内部的语句

注意:如果出现了循环的嵌套break只能终止离他最近的循环,如

for (i = 0; i < 3; ++i)
	{
		for (j = 1; j < 4; ++j)
			break;   //在循环嵌套中,break只能终止距离他最近的循环
		printf("终止j循环n");
	}
3.case

用于语句分支(switch)

注意:case 后面只能是整型或字符型常量表达式。如

int x = 1, y = 0, a = 0, b = 0;
  
switch (y)  
		{
		case 0://语句分支0
			a++;
			break;  
		case 1://语句分支1
			b++;
			break;
		}
4.char

声明字符型变量 如:’a‘

5.int

声明整型变量 如“1,2,3 范围:2147483648 ~ +2147483647 (4 Bytes)

6.float

声明单精度浮点数 如:1.1 范围:-3.4028235E38, 3.4028235E38

7.short

声明短整型型变量 范围: -32767 ~ + 32768 

8.double

声明双精度浮点数 范围: 1.7 * 10^308 (8 Bytes)

9.long

声明长整型变量 范围:和int相同 longlong是int的两倍

10.signed和unsigned

signed是默认的 表示 这个变量 是有符号的 也就是可以存储 整数 和负数
unsigned则需要 显示给出 表示 这个变量 没有符号 值能存储数的大小 而不能表示 正负
另外 signed存储 符号是有代价的 代价就是 存储空间中的一个比特位 专门用来存储符号 这一位不能 表示数值
所以 一般来说 同类型的signed能够存储的数的绝对值大小要小于undigned

11.struct

声明结构体变量;结构体所占内存大小是其成员所占内存之和。

12.union

声明联合数据类型变量;维护足够的空间来放置多个数据成员的“一种”,而不是为每一个数据成员配置空间,所有的数据成员具有相同的起始地址。一个union只配置一个足够大的空间来容纳最大长度的数据成员。

13.enum

enum用来声明枚举变量,但枚举变量需要先定义,定义的具体成为枚举常量

enum变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依次加1,如果都没有赋值,他们的值从0开始依次递增1.

 14.static

声明静态变量

作用:

1).修饰变量
静态全局变量:作用域从定义之处开始,到文件结尾处结束
静态局部变量:在函数体中定义时,只能在这个函数中使用,即使这个函数运行结束了,这个静态变量的值在函数下次使用时,仍然能用。

2).修饰函数
函数前面加static使得函数成为静态函数,此时函数的作用域仅限于本文本,使得不同的人编写不同的函数时,不用担心自己定义的函数是否与其它函数同名。

15.switch

如同以上提到case配套使用
 

int x = 1, y = 0, a = 0, b = 0;
  
switch (y)  
		{
		case 0://语句分支0
			a++;
			break;  
		case 1://语句分支1
			b++;
			break;
		}
16.default

用于开关上的其他分支

int x = 1, y = 0, a = 0, b = 0;
  
switch (y)  
		{
		case 0://语句分支0
			a++;
			break;  
		case 1://语句分支1
			b++;
			break;
        default:b--;
                break//语句的其他分支 当y为除0和1的其他值时执行此条语句
		}
17. do

循环语句的循环体

 do -while循环:先执行do后面的代码,然后判断while后面括号里的值,如果为真,循环开始,否则,循环不开始。

18. while

循环语句的循环条件

while 循环:先判断while 后面括号里面的值,如果为真则执行其后面的代码,否则不执行。while(1) 表示死循环,要注意它的使用。

19. for

一种循环语句

for循环:可以很容易控制循环次数,多用于事先知道循环次数的情况下。

20. if

条件语句

int main
{
int a=5;
if(a<10) //括号内为条件 若条件成立则进行下一步
a++;
return 0;
}
21. else

条件语句否定分支

int main
{
int a=5;
if(a<10) //括号内为条件 若条件成立则进行下一步
a++;
else
a--;//若条件不成立则进行该语句
return 0;
}
22. goto

无条件跳转语句

23. sizeof

计算对象所占内存空间大小;

24. extern

声明变量是在其他文件中声明;最会带帽子的关键字

25. return

子程序返回语句,用来终止一个函数并返回后面跟着的值

注意:return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被自动销毁。

26. void

声明函数无返回值或者无参数,声明空类型指针

27.const

声明常变量,被const修饰过的变量不可以再修改

#include
int main()
{
const int a=10;
a=11;//此处赋值编译会出错
return 0;
}
28.register

此关键字声明的变量可以使变量存储在寄存器中,是编译速度加快但有几个注意点

register修饰符的注意点: 
1. register变量必须是能被CPU所接受的类型。这通常意味着register变量必须是一个单个的值,并且长度应该小于或者等于整型的长度。不过,有些机器的寄存器也能存放浮点数。 
2. 因为register变量可能不存放在内存中,所以不能用“&”来获取register变量的地址。 
3. 由于寄存器的数量有限,而且某些寄存器只能接受特定类型的数据(如指针和浮点数),因此真正起作用的register修饰符的数目和类型都依赖于运行程序的机器,而任何多余的register修饰符都将被编译程序所忽略。 
4. 在某些情况下,把变量保存在寄存器中反而会降低程序的运行速度。因为被占用的寄存器不能再用于其它目的;或者变量被使用的次数不够多,不足以装入和存储变量所带来的额外开销。 
5. 早期的C编译程序不会把变量保存在寄存器中,除非你命令它这样做,这时register修饰符是C语言的一种很有价值的补充。然而,随着编译程序设计技术的进步,在决定那些变量应该被存到寄存器中时,现在的C编译环境能比程序员做出更好的决定。实际上,许多编译程序都会忽略register修饰符,因为尽管它完全合法,但它仅仅是暗示而不是命令。

29.continue

此关键字和break相似,break是跳出循环并且不进行下一次循环,continue是跳出循环进行下一次循环,此关键字可用在for和while循环中

30.volatile

说明变量在出现执行中可被隐含地改变 

volatile 是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如 *** 作系统,硬件或者其他线程等

31. typedef

用来给数据类型取名

#include
int main()
{
int a,b=10;
typedf int chongdingyi;
//chongdingyi a,b=10;此语句和int a,b=10含义相同类似于将int改名为chongdingyi,其他类型用法相同
return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5665956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存