欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > C++ 06 之 c++增强

C++ 06 之 c++增强

2024/10/24 1:51:50 来源:https://blog.csdn.net/LSG_Down/article/details/139635093  浏览:    关键词:C++ 06 之 c++增强

c06c++增强.cpp

#include <iostream>using namespace std;
// 1、全局变量检测增强:可以检测出重定义 (c语言不会报错,但是C++会报错)
//int a;
//int a = 10;// 2、函数检测增强: 函数返回值类型、形参类型、实参个数
int sum(int a, int b)
{return a + b;
}// 4、struct增强:c++创建结构体变量时候,struct 关键字可以省略
struct students5
{int age;// C语言的结构体中不能加函数,但C++中结构体可以有函数成员void fun1() {age++;};   
};// 7、const增强
// 全局的const
const int a = 100;  // 栈中申请的空间.受到常量区保护,运行修改失败int main6()
{/*int res = sum(1, 3);printf("res:%d", res);cout << "hello world" << endl;*/// 3、类型转换检测的增强,等号前后的数据类型要一致,要强转,否则要报错// char* p = (char *)malloc(100);// 4、struct 结构体增强  // struct students5 stu;// c++创建结构体变量时候,struct 关键字可以省略students5 stu;stu.age = 10;stu.fun1();cout << "age: " << stu.age << endl;// 5、 bool增强bool flag = true; // 结果为1//flag = false;   // 结果为0flag = 0;         // 结果为0flag = 100;flag = -100;    // 非零,结果都是1  1为真 0为假cout << flag << endl;cout << sizeof(flag) << endl;cout << sizeof(bool) << endl;   // bool 类型占 1字节 空间// 6、三目运算符增强//int a = 10;//int b = 20;// ?前面为真,返回 :前的a   // ? 前面为假,返回 :后的b//printf("res: %d\n",a > b ? a : b);// C 中三目运算符返回的是 值  C++中三目运算符返回的是 变量   所以此种写法C中错误,C++可以// C++中三目运算符 返回的是 变量 此时返回的是b ,而后再给 b 赋值100// : 号前是一个表达式   :号后是一个完整的表达式//a > b ? a : b = 100;//printf("a:%d\n",a);   // 10//printf("b:%d\n",b);   // 100// ?号前为真,执行 :号前的表达式,  :号后的不执行,所以此时 b = 20//a < b ? a : b = 100;//printf("a:%d\n", a);  // 10//printf("b:%d\n", b);  // 20// 7、const 增强// a = 200;  // 全局常量不可以修改// int* p = &a;// int* p = (int*) & a;// *p = 200;   // 全局常量指针写法,不可以修改// printf("======================================");// printf("a:%d\n",a);// printf("======================================");// 局部const// const int b = 20;//b = 300;    // 局部常量不可以修改//int* p =(int*) & b;    // 局部常量指针写法,不可以修改//*p = 300;//printf("b:%d\n",b); // b:20 //int arr1[b];    // c++中 const修饰的变量 称为常量,可以用在数组的初始化return 0;
}

 

 

 

c06c++增强.cpp

#include <iostream>
using namespace std;
// 1.全局变量检测增强:可以检测出重定义(c语言不会报错,但是c++会报错)
// int a;
// int a = 10;// 2.函数检测增强:函数返回值类型、形参类型、实参个数
int sum(int a, int b)
{return a + b;
}// 4.struct增强:c++ 创建结构体变量的时候,struct 关键字可以省略
struct students5
{int age;// C语言的结构体中不能加函数,但C++中结构体可以有函数成员void fun1(){age++;};
};// 7.const增强
// 全局的const
const int a = 100;  // 栈中申请的空间,受到常量区保护,运行修改失败int main()
{int res = sum(1,3);printf("res:%d\n",res);// 3.类型转换检测的增强,等号前后的数据类型要一致,要强转,否则报错char* p = (char* )malloc(100);// 4.struct 结构体增强// struct students5 stu;// c++ 创建结构体变量时候,struct 关键字可以省略students5 stu;stu.age = 10;stu.fun1();cout << "age: " << stu.age << endl;// 5. bool增强bool flag = true; // 结果为1flag = false;   // 结果为0flag = 0;       // 结果为0flag = 100;     // 结果为1flag = -100;    // 非零,结果就都是1   1为真  0为假cout << flag << endl;cout << sizeof(flag) << endl;cout << sizeof(bool) << endl;   // bool 类型占 1字节空间// 6.三目运算符增强int a = 10;int b = 20;// ?前面为真,返回 :前的a   // ? 前面为假,返回 :后的b// printf("res:%d\n", a > b ? a : b);//C中三目运算符返回的是值  C++中三目运算符返回的是 变量 所以此种写法C中错误,C++可以// C++中三目运算符 返回的是 变量 此时返回的是b ,而后再给 b 赋值100// : 号前是一个表达式   :号后是一个完整的表达式a > b ? a : b = 100;printf("a:%d\n",a); // 10printf("b:%d\n",b); // 100// ?号前为真,执行 :号前的表达式,  :号后的不执行,所以此时 b = 20//a < b ? a : b = 100;//printf("a:%d\n", a);  // 10//printf("b:%d\n", b);  // 20return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com