从C到C++的升级之const关键字的升级
来源:互联网 发布:电脑软件怎么恢复 编辑:程序博客网 时间:2024/06/04 23:01
const关键字(const修饰的变量一定要初始化)
1) C语言中的const
A. const修饰的变量为只读变量,不能通过变量名修改变量值,但可通过变量空间修改变量的值;
B. 一般修饰函数的形参,避免在函数实现中修改实参的值,便于调试
const int num =5;num++;ànum = 5
const int num =5;int *p = #(*p)++;ànum= 6
2) C++中的const
在C++中,const变量空间不可变,即相当于常量
const int num =5;num++;ànum = 5
const int *p =#(*p)++;ànum = 5
3) const与#define的区别
A. define只是用来做文本宏替换,define常量的生命周期止于编译器,它存在于程序的代码段,在实际程序中它只是一个常数;而const变量存在于程序的数据段,并在堆栈中分配了空间;
B. define定义的常量在程序运行时不可以被调用、传递,因为define没有给名字分配空间,仅仅是给一个常数起了一个名字;而const常量在程序中确确实实存在,所以在程序运行时可以被调用、传递;
C. define定义的常量没有数据类型;而const常量有数据类型,编译器可以对const常量进行类型安全检查。
4) 常量指针
常量指针有以下形式:
A. char * const a;字符指针a本身是常量,但是a所指向的内存空间数据是可以改变的(定义时一定要初始化)
B. char const *a;字符指针a所指向的内存空间数值为常量,不可以改变,但是指针的本身是可以改变的
C. const char *a;字符指针a所指向的内存空间数值为常量,不可以改变,但是指针的本身是可以改变的(与第二种相同)
D. const char * const a;指针a本身时常量,并且指针a所指向的内存空间数据也为常量,定义时一定要初始化
- 从C到C++的升级之const关键字的升级
- 从C到C++的升级之register关键字的升级
- 从C到C++的升级之函数升级
- 从C到C++的升级之引用VS指针
- 从C到C++的升级
- 从c到c++的升级
- 从C到C++的升级
- C到C++的升级
- c到c++的升级
- c到c++的升级
- C到C++的升级
- C到C++的升级
- C到C++的升级
- C到C++的升级
- 从C到C++的升级之命名空间和数据类型
- 1.C到C++的升级
- C语言到C++的升级
- 一、c到c++的升级
- PHP错误Notice : Use of undefined constant 的完美解决方法
- 新年新开始
- 对字符串做单词逆序
- TCP、UDP、HTTP、Socket、HttpUrlConnection、HttpClient、Volley、OkHttp之间关系
- Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库
- 从C到C++的升级之const关键字的升级
- 为什么是System.out.println();
- 构造函数与析构函数
- 操作系统概念学习笔记 第三章 进程
- jsp中如何通过session判断用户是否登录?
- spring mybatis 结合redis 缓存[演示]
- 卡特兰数,程序实现,递归,循环,BST和出入栈顺序的应用
- ProgressBar
- Gradle与Makefile构建工具的对比