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 常量的地址

 

posted @ 2020-12-15 22:13  OzTaking  阅读(113)  评论(0)    收藏  举报