【C 语言基础】了解 C 语言的常见关键字

本文阅读 5 分钟

我的名字天下无二

C语言中有一些预先定义的字符串,他们本身被赋予了自身的功能。并且我们在定义变量的时候,不能去抢他们的名字来用。他们就是今天的主角:关键字

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

这其中有大家熟知的数据类型:int,char,float,double…

也有控制语句用到的:if,for,do…

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

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

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

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

auto

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

代码如下:

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

register

register:声明寄存器变量

signed和unsigned

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

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

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

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等价

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

拓展

变量的声明有两种情况
​ 1. 一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。
​ 2. 另一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。
例如:extern int a 其中变量 a 可以在别的文件中定义的。
​ extern int i; //声明,不是定义
​ int i; //声明,也是定义

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;//函数定义
}

产生结果如下: img

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

以上介绍了一些关键字,但是并没有完全介绍清楚,还有疑问的大家可以自己查询。至于剩下的一些关键字,我将会在以后章节为大家详细介绍。

希望大家稀饭啦(^ _ ^)/

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://t4dmw.blog.csdn.net/article/details/115500003
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复