C语言中常见关键字有哪些

发布时间:2021-09-14 17:46:51 作者:小新
来源:亿速云 阅读:155

这篇文章主要为大家展示了“C语言中常见关键字有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中常见关键字有哪些”这篇文章吧。

首先我们简单的和这些关键字见见面(被高亮的关键字是今天要介绍的)

C语言中常见关键字有哪些

这其中有大家熟知的数据类型:intcharfloatdouble

也有控制语句用到的:iffordo

还有一些就是今天主要介绍的关键字。

至于还有一些新增的关键字,以上表格未曾提到,大家如果想去了解,可自行查找。

个别术语介绍(可先跳过,后文如若遇到不懂,可回来了解)

自动变量:指的是局部作用域变量,具体来说即是在控制流进入变量作用域时系统自动为其分配存空间, 并在离开作用域时释放空间的一类变量

存储类:是C语言与C++语言的标准中,变量与函数的可访问性(即作用域范围)与生存期

寄存器:寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。

计算机中的数据可以存储到:寄存器,高速缓存器,内存,硬盘,网盘

(以上存储从左到右按照,内存越来越大,造假越来越低,传输速度越来越慢排序)

1、auto

auto:声明自动变量,一般都省略

默认情况下,在代码块内声明的变量都是自动变量,但亦可用自动变量的关键字auto明确标识存储类

代码如下:

int a=0;
//上下两个变量其实相同,只不过上面省略了auto
auto int a=0;

2、register

register:声明寄存器变量

这个关键字定义变量后,会请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻 址访问,以提高效率。(因为寄存器很小,如果定义了很多register变量,可能会超过CPU的寄存 器个数,超过容量,故变量不是一定会存入寄存器内)

3、signed和unsigned

signed:有符号的(一般定义常量默认为signed)-------可以存储正数和负数

unsigned:无符号的-----不能存储负数

signed int a=10; //一般默认为signed,故只要写成:int a=10;
    
unsigned float=-75.3------>错误定义
    
float=-75.3------>正确定义

signed float=-75.3------->正确定义

4、typedef

typedef:类型重定义-------一般对于太过复杂的数据类型,可以重新定义一个简单的或有辨识度的使用

typedef <数据类型> <你取的类型名>

unsigned long int a=10;  //数据类型过于复杂,可以使用typedef重新定义
    
typedef unsigned long int u_l_int;

u_l_int a=10;          //与unsigned long int a=10等价

5、extern

extern:用在变量或者函数的声明前,用来说此变量/函数是在别处定义的,要在此处引用

默认情况下全局变量只能在定义它的文件中使用(从定义该全局变量开始到所在文件的文件尾), 但如果在另一个文件中将这个变量声明为外部变量,那么这个变量的作用域将被扩展到另外一个文 件中。

代码如下:

先在源文件中创建项目名为:main.c

#inlcude <stdio.h>
extern int a;
extern int Add(int x,int y);
int main()
{
    
 printf("%d\n",a);
    printf("%d\n",Add(3,2));
}

再在源文件中创建项目名为:test.c-------作为全局变量,函数定义的文件

int a=10;//全局变量
int Add(int x,int y)//
{
 return x+y;//函数定义
}

结果会输出10,5

6、拓展

变量的声明有两种情况

例如:extern int a 其中变量 a 可以在别的文件中定义的。
extern int i; //声明,不是定义
int i; //声明,也是定义

定义分配存储空间,而声明不会

如何区分声明还是变量

extern告诉编译器变量在其他地方定义了
如果声明有初始化式,就被当作定义,即使前面加了extern
函数的声明和定义区别比较简单,带有{ }的就是定义,否则就是声明
没有extern关键字的都是变量的定义

static:

static:声明静态变量

解释1,代码如下:

#include <stdio.h>
void Add(int x)
{
    static int a=2;
    a++;
    printf("%d ",x+a);
}
int main()
{
    int i=0;
    for(i=0;i<3;i++)
    {
        Add(1);
    }
    return 0;
}

结果是4 5 6,大家知道int a=2是一个自动变量,在他作用域结束后,空间就会释放掉,a的值不能保存。

而加上static改变了他的生命周期,使他在整个项目结束前的一直存在,所以a的值会不断迭代

解释2,3,代码如下:(引用extern的内容,大家可以自行对比)

先在源文件中创建项目名为:main.c

##inlcude <stdio.h>
extern int a;
extern int Add(int x,int y);
int main()
{
    
 printf("%d\n",a);
    printf("%d\n",Add(3,2));
}

再在源文件中创建项目名为:test.c-------作为全局变量,函数定义的文件

static int a=10;//全局变量
static int Add(int x,int y)
{
 return x+y;//函数定义
}

产生结果如下:

C语言中常见关键字有哪些

最后注意:#define和#include不是关键字,是预处理指令

以上是“C语言中常见关键字有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. c语言关键字有多少个
  2. c语言中的关键字有哪些?有什么含义?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:Javascript中如何实现datagrid查询

下一篇:mysql中my.cnf的详细讲解

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》