当前位置:首页 > 教育培训 >

c语言中关键字的意思(c语言中不是关键字的是什么)

来源:原点资讯(m.360kss.com)时间:2023-06-20 02:41:19作者:YD166手机阅读>>

关键字是对编程语言有特定含义的词或标识符,C 在C语言32个关键字的基础上又新增了很多功能强大且实用的关键字。那么,下面这些关键字,你有见过或者用过吗?

auto

这个关键字应该很多人都见过,但是用的比较少而已。C 是强类型语言,变量必须指明类型。但是在C 功能越来越丰富,越来越强大的时候,例如模板的出现导致又是并不清楚某些复杂的expression会返回何种类型,此时auto就起了很大作用:自动类型推断和返回值占位。类似于C#中的var,系统可以自动推断变量类型

auto x = 1 ;//x为int型 auto y = 1.2 ;//y为float型 auto c = "ss" ;//c为string型 vector<int> vec(3) ; auto itera = vec.begin();//vec的正向迭代器 auto itera_r = vec.rbegin();//vec的反向迭代器and, and_eq, or, or_eq, not, not_eq

这些都是C 11中新增的关键字,都是用来处理逻辑操作的。有了这些关键字C 写起来居然有点python的味道。

and相当于&&; and_eq相当于&=; or相当于||; or_eq相当于|=; not相当于! not_eq相当于!=nullptr

nullptr是避免野指针的一大利器,我们一直用的NULL表示空指针,但是殊不知在某些极端情况下,NULL可能会出现意料之外的情况。NULL的定义为:NULL的定义为:#define NULL ((void *)0),也就是说NULL实质上是一个void *指针。请看下面的代码:

void Func(char *); void Func(int); int main() { Func(NULL); }

如果此时NULL表示一个空指针的话,实际上我们Func(NULL);本意是要调用Func(char *);因为C 把NULL定义为0,所以实际结果却是调用的Func(int);

nullptr的使用也是十分的简单

char *p1 = nullptr; int *p2 = nullptr;noexcept

C 在函数申明时一般是默认可以抛出任何异常,但是可以用throw来指定该函数可以抛出的异常的类型,这样方便函数调用处理时catch语句好匹配。

void func_anyException();//可以抛出任何异常 void func_NoException() throw();//不可抛出任何异常 void func_defineException() throw(char*,int);//只可以抛出char* 和 int类型异常。

而C 11新增的noexcept,看翻译就知道是不抛出任何异常的意思,那么

void func_NoException() throw(); void func_NoException() noexcept;

上面两个申明在语法上功能是一摸一样的,区别就是程序运行时的行为和编译器优化的结果。当使用noexcept时,如果运行时函数抛出异常而有没有适合类型的catch语句,std::teminate()函数会被立即调用,而不是调用unexpected(); 而throw在这种情况下就会先调用unexpected()
所以,noexcept在异常处理的过程中,编译器不会回退栈,这为编译器的优化提供了更大的空间。

register

register是从C语言就存在的一个关键字,但是我好像从来没用过。register修饰符暗示编译程序相应的变量将被频繁地使用,请求编译器将其保存在CPU的寄存器中,以加快其存储速度。

register char *s; register int a;

但是register需要注意一下几点:

1、register变量必须是一个单个的值,并且长度不能太长,一般不能大于一个int的长度

2、不能被取地址,也即&a是非法的

3、register static int a非法,局部静态变量不可申明为register,全局变量也不可申明为register

栏目热文

c语言关键字指什么(c语言关键字详细解释)

c语言关键字指什么(c语言关键字详细解释)

在C语言中,const是一个关键字,用于声明一个常量。常量是指其值不能被修改的变量。使用const关键字可以提高代码的可...

2023-06-20 03:20:32查看全文 >>

c语言空字符(c语言怎么使字符串为空)

c语言空字符(c语言怎么使字符串为空)

C语言中是没有字符串这个变量类型的,但是我们可以把字符串存储在char数组中,这个数组的最后一位是字符\0,即空字符,A...

2023-06-20 02:54:43查看全文 >>

c语言关键字37个及其含义(c语言关键字及其含义举例)

c语言关键字37个及其含义(c语言关键字及其含义举例)

这次跟大家分享的,是关于C语言里面常用的16个关键字。通通给你们整理出来了~赶紧拿小本本记下来~!下次发布剩下的~量不在...

2023-06-20 02:44:29查看全文 >>

c语言中int是什么意思(c语言里面的int是什么意思)

c语言中int是什么意思(c语言里面的int是什么意思)

C语言中有没有见过(int [2]){19,20}或者int (*pt2)[4]的使用方法,字面上可能不好理解,这是C9...

2023-06-20 02:42:30查看全文 >>

c语言中关键字有多少(c语言一共有多少个关键字)

c语言中关键字有多少(c语言一共有多少个关键字)

喜欢的可以收藏转发加关注谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能...

2023-06-20 03:15:38查看全文 >>

小米电视显示服务器断开连接(小米电视怎么突然无法连接服务器)

小米电视显示服务器断开连接(小米电视怎么突然无法连接服务器)

爱奇艺大范围崩溃连累小米电视,官方回应:一同紧急抢修,已恢复正常2月16日晚22点左右,爱奇艺出现大范围崩溃现象,网页、...

2023-06-20 03:04:51查看全文 >>

小米电视服务器断开连接

小米电视服务器断开连接

春节是国人最重要的节日之一,而在这个万家团圆的节日中,不同地区都会有不同的活动,但其中有一个活动是通用的,那就是大年三十...

2023-06-20 02:42:15查看全文 >>

苹果手机爱奇艺找不到本地网络(苹果手机找不到爱奇艺订阅)

苹果手机爱奇艺找不到本地网络(苹果手机找不到爱奇艺订阅)

由于IOS/iPadOS 系统的BUG, 14 以上的系统 首次安装App会出现没有隐私弹窗, 这种情况下,在设置 -&...

2023-06-20 02:41:31查看全文 >>

苹果手机打开爱奇艺不能全屏(苹果手机爱奇艺如何打开全屏)

苹果手机打开爱奇艺不能全屏(苹果手机爱奇艺如何打开全屏)

今日凌晨,苹果向参与测试的设备推送了 iOS16 Beta 2 ,也就是 iOS16 的第二个测试版版本号为 20A53...

2023-06-20 03:09:31查看全文 >>

苹果手机在爱奇艺没办法全屏播放

苹果手机在爱奇艺没办法全屏播放

大家好,我是氪哥。iOS 16终于来了,还以为真的延期。这次的更新幅度怎么说呢,整体看下来还是很大的,更新幅度很大,bu...

2023-06-20 03:06:45查看全文 >>

文档排行