c++余数必须是可修改的左值_细谈c++对c增强

1、c++语法检查增强

全局变量检测增强

11c9fa68e3a01adcb2598307fd742c5f.png
80bae3cc40d74b211a6d90eb9a9f7acc.png

以上c代码c编译器编译可通过,c++编译器无法编译通过

c6409dcaeba2ce013dd2e7dd73b864d0.png

2、c++对结构体的增强

1、c中定义结构体变量需要加上struct关键字,c++不需要
2、c中的结构体只能定义成员变量,不能定义成员函数。c++即可以定义成员变量,也可以定义成员函数

C语言:

struct stu{    int num;    char name[32];/* c语言 不允许在结构体中  定义成员函数    void func(void)    {        printf("我是结构体中的func");    }    */};void test01(){    //C语言必须加struct    struct stu lucy = {100, "lucy"};}

C++语言

struct stu{    int num;    char name[32];     //c++语言 允许在结构体中  定义成员函数    void func(void)    {        printf("我是结构体中的func");    } };void test01(){    //C++语言不用加struct    stu lucy = {100, "lucy"};     //调用结构体中的成员方法(成员函数)    lucy.func();}

3、c++新增bool类型

6047aa7c66a44bf253729cad2f8d5be7.png
void test02(){    bool mybool;    cout<

4、三目运算符功能增强

1、c语言三目运算表达式返回值为数据值,为右值,不能赋值

void test02(){    int a = 10;    int b = 20;    printf("C语言:%d", a>b?a:b);//20     //a>b?a:b整体结果 右值(不能被赋值)    a>b?a:b = 100;//err不能被赋值}

2、c++语言三目运算表达式返回值为变量本身(引用),为左值,可以赋值

void test02(){    int a = 10;    int b = 20;    cout<b?a:b)<b?a:b整体结果是变量本身(引用) 左值(能被赋值)    a>b?a:b = 100;//b =100}
4ae8b96d2c12ddbcc88f24d0afcfce31.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值