bool c语言_C++知识点 5:C++ 对 C 语言的扩展

1、 C++ 对全局变量检测增强
int a;
int a = 10;
int main(){
}

C语言语法通过
C++ 报错: int a 重定义

2、函数检测增强
getRectS( w , h )
{
return w * h;
}
void test02()
{
getRectS(10, 10, 10);
}

C语言中:不报错
C++ 报错: C++ 中要严格限定: 函数返回值必须有;函数参数类型;调用传递的参数数量必须一样
****************************************************************************************


3、类型转换加强: C++中要求严格的类型转换
C 语言中: char* p = malloc(64); // OK
C++中不行,必须: char* p = (char*)malloc(64);
****************************************************************************************

4、 struct 增强
1) C++中 结构体里可以放函数,但 C 语言中不行
2)调用时候, C++语言中 ,可以省略 struct 关键字 // 作用相当于 C 语言中给结构体起别名

struct Person
{
int age;
void addAge(){ age++; };
};
void test04()
{
Person p1; // 可以省略关键字 struct
p1.age = 17;
p1.addAge();
cout << "p1 的年龄: " << p1.age << endl; // 结果: p1 的年龄: 18
}****************************************************************************************

5、 bool 类型的扩展
1) C 语言中没有 bool 类型
2) bool 类型的变量只有 2 个值:
真 true 1
假 flase 0 未初始化 默认 = 0

3) bool 变量类型大小 = 1
int main()
{
bool flag = true;
cout << sizeof(bool) << endl; // 1
cout << "flag = " << flag << endl; // flag = 1
}****************************************************************************************

6、三目运算符的增强
一句话:三目运算符的返回值,对于 C 语言,是一个值;对于 C++,是一个变量
---------------------------------------------------------------------------------------------------
C++ 中

void test()
{
int a = 10;
int b = 20;
cout << "ret = " << ((a > b) ? a : b ) << endl; // 结果 ret = 20// 过程: // (a > b) ? a : b 结果 b = 20 // ret = b // ret = 20
(a > b ? a : b) = 100; // 不报错( b = 20) = 100 C++语言中 返回的是变量
cout << "a = " << a << endl; // 结果 a = 10
cout << "b = " << b << endl; // 结果 b = 100
}---------------------------------------------------------------------------------------------------C 语言中
void test()
{
int a = 10;
int b = 20;
printf("ret = %d ", a > b ? a : b);// ( a > b ? a : b ) = 100; // 报错:这句话等价于 20 = 100 C 语言中 三目运算符 返回的是 值
*(a > b ? &a : &b) = 100; // 模仿 C++中的 三目运算// 解析: (a > b ? &a : &b) 结果: &b *(&b) = 100 即 b = 100
printf("a = %d", a); // a = 10
printf("b = %d", b); // b = 100
}****************************************************************************************
7、 const 修饰的 局部常量 详见 “知识点 6”

7fe5b904eb096a6dcd994a979c58cf51.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值