c++ (1)
1.三目运算符功能增强
因为a=10,b=20,a确实小于b,因此返回了变量a,赋值为30;
此程序在c编译器是编译不过的。

使用c语言描述实现的本质:取地址修改a变量的值;


2.const
关键点:指针变量和它所指向的内存空间变量是两个不同的概念。
关键查看const是修饰指针本身还是修饰指针所指向的内存空间;
Const 好处
// 合理的利用 const,
//1 指针做函数参数,可以有效的提高代码可读性,减少 bug;
//2 清楚的分清参数的输入和输出特性
1 // dm02_const.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 2 // 3 4 #include <iostream> 5 6 struct Teacher { 7 int age; 8 char name[64]; 9 }; 10 11 //5.指针变量所指向的内存空间不能被修改 12 int operatorTeacher02(Teacher const * t) { 13 //t->age = 10; //是错误的,无法修改;表达式必须是可修改的左值 14 t = NULL; 15 return 0; 16 } 17 18 19 //6.指针变量本身不能修改 20 int operatorTeacher02( Teacher * const t) { 21 t->age = 10; 22 //t = NULL; //是错误的,无法修改;表达式必须是可修改的左值 23 return 0; 24 } 25 26 //7. 27 //指针变量本身不能修改 28 //指针变量所指向的内存空间不能被修改 29 int operatorTeacher03(Teacher const * const t) { 30 //t->age = 10; //表达式必须是可修改的左值 31 //t = NULL; //是错误的,无法修改;表达式必须是可修改的左值 32 33 printf("age = %d",t->age); 34 35 return 0; 36 } 37 38 int main() 39 { 40 41 const int a = 0; 42 int const b = 0; //1.上面的两种写法是一样的; 43 44 const int *c; //2.const修饰的指针所指向的内存空间不能被修改; 45 46 int const* d; //3.指针本身的值不能被修改 47 48 const int const* e; //4.指针本身和指向所指向的内存空间都不能被修改 49 50 std::cout << "Hello World!\n"; 51 }

c++中的const不能被修改


结论: C语言中的 const 变量 C语言中 const 变量是只读变量,有自己的存储空间 C++中的 const 常量 可能分配存储空间 ,也可能不分配存储空间 当 const 常量为全局,并且需要在其它文件中使用 当使用 &操作符取 const 常量的地址
浙公网安备 33010602011771号