纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

C语言的常见关键字 C 语言基础之C语言的常见关键字

吞吞吐吐大魔王   2021-09-14 我要评论
想了解C 语言基础之C语言的常见关键字的相关内容吗吞吞吐吐大魔王在本文为您仔细讲解C语言的常见关键字的相关知识和一些Code实例欢迎阅读和指正我们先划重点: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;//函数定义
}

结果会输出105

6、拓展

变量的声明有两种情况

  •  一种是需要建立存储空间的例如:int a 在声明的时候就已经建立了存储空间
  •  另一种是不需要建立存储空间的通过使用extern关键字声明变量名而不定义它

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

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

如何区分声明还是变量

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

static:

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的值会不断迭代

解释23代码如下:(引用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;//函数定义
}

产生结果如下:

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

到此这篇关于C 语言基础之C语言的常见关键字的文章就介绍到这了,更多相关C语言的常见关键字内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


相关文章

猜您喜欢

  • Python办公自动化PPT转换 Python办公自动化PPT批量转换操作

    想了解Python办公自动化PPT批量转换操作的相关内容吗somenzz在本文为您仔细讲解Python办公自动化PPT转换的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Python办公自动化,Python批量转换ppt下面大家一起来学习吧..
  • Jquery之datagrid查询 Jquery之datagrid查询详解

    想了解Jquery之datagrid查询详解的相关内容吗小丸子✘在本文为您仔细讲解Jquery之datagrid查询的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Jquerydatagrid,datagrid查询下面大家一起来学习吧..

网友评论

Copyright 2020 www.sopisoft.net 【绿软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式