C语言深度解剖-关键字(1)

简介: C语言深度解剖-关键字(1)

1.初步了解关键字

C语言一共多少个关键字呢?


现在主流的编译器大多支持C90(C89)的标准,


所以我们认为C语言的关键字有32个。


如下:


auto :    声明自动变量   


short :   声明短整型变量或函数   


int:        声明整型变量或函数


long :    声明长整型变量或函数   


float:     声明浮点型变量或函数   


double :声明双精度变量或函数   


char :    声明字符型变量或函数   


struct:   声明结构体变量或函数   


union:   声明共用数据类型   


enum :  声明枚举类型   


typedef:用以给数据类型取别名   


const :  声明只读变量   


unsigned:声明无符号类型变量或函数   


signed:  声明有符号类型变量或函数   


extern:  声明变量是在其他文件正声明   


register:声明寄存器变量   


static :   声明静态变量   


volatile: 说明变量在程序执行中可被隐含地改变   


void :     声明函数无返回值或无参数,声明无类型指针   


if:             条件语句   


else :    条件语句否定分支(与 if 连用)   


switch :  用于开关语句   


case:    开关语句分支   


for:       一种循环语句   


do :      循环语句的循环体   


while : 循环语句的循环条件   


goto:   无条件跳转语句   


continue:结束当前循环,开始下一轮循环   


break:  跳出当前循环   


default:开关语句中的“其他”分支   


sizeof : 计算数据类型长度   


return : 子程序返回语句(可以带参数,也可不带参数)循环条件


2.第一个C程序

#include 
//文本代码->可执行程序(二进制文件)->双击启动该程序
//生成可执行程序并运行
int main()
{
  printf("hello world!\n");
  return 0;
}

输出:


输出:hello world!

在编译代码后,在文件中产生的exe后缀的文件双击就能运行出一样的结果。


在win中,双击的本质是运行程序,将程序加载到内存,


任何程序被运行之前都要被加载到内存中。


注:


1.程序没有被加载的时候,存放在硬盘中。


2.程序加载到内存中的原因是内存运行速度快。


3.深刻理解变量

是什么?

变量是在程序运行时,在栈上开辟的的内存空间。        


所以:所有变量本质都是在内存中某个位置开辟空间。


怎么用?

int main()
{
  //初始化
  int a = 10;
  double b = 1.0;
  char c = 'c';
  //赋值
  c = 'd';
  return 0;
}

为什么?

计算机是为了解决人计算能力不足的问题而诞生的。


即,计算机是为了计算数据。


而计算数据不一定是一下子用完全部数据,


换句话说,为何需要变量?因为有数据需要暂时被保存起来,等待后续使用。


4.深刻理解定义与声明

1.定义变量的本质:在内存中开辟一块空间,用来保存数据


2.定义只有一次,声明可以有多次。


5.auto关键字的理解

auto是用来修饰局部变量的:


例:


#include 
int main()
{
  for (int i = 0; i < 10; i++)
  {
  printf("%d ", i);
  if (1)
  {
    auto int j = 0; //自动变量
    printf("%d ", j);
    j += 1;
    printf("%d \n", j);
  }
  }
  return 0;
}


输出:

输出:
0 0 1
1 0 1
2 0 1
3 0 1
4 0 1
5 0 1
6 0 1
7 0 1
8 0 1
9 0 1

总结:


auto 现在几乎已经没有人用了,它的修饰作用可有可无。


6.理解关键字register

register 是寄存器的意思


认识:

距离CPU越近的存储硬件,速度越快。


而CPU内集成了一组存储硬件即可,这组硬件叫做寄存器


本质:

在硬件层面上,为提高计算机的运算效率,从寄存器中读取数据。


register 修饰变量

尽量将所修饰变量,放入CPU寄存区中,从而达到提高效率的目的。


例:


#include 
int main()
{
  register int a = 10;
  printf("%d\n", a);
  return 0;
}

输出:


输出:10

注:


1.采用寄存器的变量不能取地址(&)。


2.最好是局部变量(全局会导致CPU寄存器被长时间占用)。


3.最好是高频被读取的变量(提高效率所在)。


4.寄存器数量有限,不能大量使用。


写在最后:

以上就是本篇文章的内容了,感谢你的阅读。


如果喜欢本文的话,欢迎点赞和评论,写下你的见解。


如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。


相关文章
|
4月前
|
C语言
|
4月前
|
存储 C语言
C语言中static关键字的作用与用法解析
C语言中static关键字的作用与用法解析
|
5月前
|
存储 C语言
C语言中的typedef关键字:为类型定义新名称
C语言中的typedef关键字:为类型定义新名称
|
5月前
|
C语言
深入探索C语言中的sizeof关键字
深入探索C语言中的sizeof关键字
|
5月前
|
存储 编译器 C语言
C语言中的关键字与标识符详解
C语言中的关键字与标识符详解
111 0
|
6月前
|
存储 C语言
【C语言】数据:数据类型关键字
【C语言】数据:数据类型关键字
|
6月前
|
存储 编译器 C语言
c语言中static关键字的作用
c语言中static关键字的作用
|
6月前
|
编译器 C语言 C++
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr(下)
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr
47 0
|
6月前
|
存储 安全 编译器
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr(上)
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr
47 0
|
6月前
|
算法 C语言
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-2
C语言易混淆、简单算法、结构体题目练习、常见关键字总结