C语言rf,C89:关键字 - osc_fdjrfnux的个人空间 - OSCHINA - 中文开源技术交流社区

一.C语言关键字

1.C89关键字

一共32个关键字

修饰类型(8):auto-static-extern-register signed-unsigned const volatile

基本类型(7):void short-long char-int float-double

复合类型(4):typedef struct union enum

计算类型(1):sizeof

判断语句(7):if-else  switch-case -default goto-return

循环语句(5):for do-while break-continue

2.C99关键字

inline restrict _Bool _Complex _Imaginary

3.C11关键字

_Alignas _Alignof _Atomic _Static_assert _Noreturn _Thread_local _Generic

二.C++关键字

1.C++98/03关键字

一个有63个关键字

修饰类型(8+1):auto-static-extern-register signed-unsigned const-mutable volatile

基本类型(7+4):void short-long chart-int double-float wchar_t bool true-false

复合类型(4):typedef enum struct-union

计算类型(1+1):sizeof typeid

判断语句(7):if-else goto switch-case-default return

循环语句(5):for do-while break-continue

异常语句(3):try-catch-throw

对象类型(11):this-class new-delete  public-protected-private virtual-friend-inline-operator

命名空间(6):using namespace export template  typename asm

类型转换(5):dynamic_cast static_case const_case reinterpret_caset explicit

2.C++11关键字

alignas alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local

三.C和C++的区别

C++是对C的增强,C++是强类型语言

1.类型检查更为严格

新增了两种新修饰类型:explicit mutable

新增了四种新类型:wchar_t bool true-false

新增了类型检查符:typeid

2.增加了面向对象和运算符重载的机制

新增了十一种新对象类型:new-delete this-class public-protected-private operator-virtual-friend-inline

3.增加了泛型编程和标准模板库命名空间

新增了六种新命名空间:using-export  namespace-template  typename asm

4.增加了异常处理

新增了三种新异常语句:try-catch-throw

四.C和C++的兼容

C的大部分代码都能在C++上运行,但是C++的大部分代码不能在C上运行

1.变量声明的位置

C中的变量声明和代码是分开的,必须在函数开始处声明

C++中,变量可以在任意处声明,只要保证先声明再使用的原则

2.struct结构体

在C中声明struct变量必须写成:struct mystruct a;

在C++中前面struct可以省略:mystruct a;

在C++中,struct结构体支持成员函数默认访问为public(),但是在C中不行(类的默认访问为private)

很少人会在结构体里面加类,顶多有一个构造函数

3.bool类型

在C++中有bool(或boolean类型),在C中没有布尔类型,只有数值类型

4.注释不同

在C中注释只有一种/*...*/

在C++中的注释包含两种/*...*/和//

5.强制数据类型转换

在C中的强制转换形式为:(类型)变量

在C++中还可以使用:类型(变量)

6.赋值

在C中的赋值只有一种=

在C++中还可以用(),比如int x(5)等于int x=5

7.函数

在C中函数没有默认参数值,不允许有同名的函数,未声明和定义函数之前调用函数是允许的

在C++中函数有参数默认值和函数重载,必须先声明原型或定义才能调用函数

注意:在C++中赋初始值必须从参数列表的右边开始赋值,从左边开始赋值将会出错

8.运算符&和const

在C中运算符&表示取地址,函数不能用const

在C++中运算符&还可以表示引用,可以用void a()const{...}

9.extern

在C中在其他模块共享一个全局变量不用加extern

在C++中在其他模块共享一个全局变量必须先用extern声明

10.void指针

在C中void指针可以赋给任何类型的指针

在C++中必须先进行强制数据类型转换再赋值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值