C++的const简单说明
2018-04-02 21:30
369 查看
const的基础知识:int main() {
const int a; //代表一个常整形数;
int const b; //代表一个常整形数;
const int *c; //是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改;
int * const d; //常指针(指针变量不能被修改,但是它所指向内存空间可以被修改);
const int * const e ; //一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改);
return 0;
}
初级理解:const是定义常量==》const意味着只读。
const好处,合理的利用const:
1.指针做函数参数,可以有效的提高代码可读性,减少bug;
2.清楚的分清参数的输入和输出特性;
int setTeacher_err(const Teacher *p)
const修饰形参的时候,在利用形参不能修改指针所向的内存空间。
C语言中的const是冒牌货:#include <stdio.h>
#include <stdlib.h>
int main()
{
const int a = 10;
int *p = (int*)&a;
printf("a===>%d\n", a);
*p = 11;
printf("a===>%d\n", a);
return 0;
}程序运行结果:
有程序运行结果可知,可以通过指针间接改变const修饰的变量。
现在我们将同样的代码使用C++编译器看看效果:#include <iostream>
#include <stdio.h>
int main()
{
const int a = 10;
int *p = (int*)&a;
printf("a===>%d\n", a);
*p = 11;
printf("a===>%d\n", a);
return 0;
}输出结果:
C++中const修饰的变量是一个真正的常量。
结果分析:C++编译器对const常量的处理,当碰见常量声明时,在符号表中放入常量,使用键值对的方式保存,一个key对应一个value;编译过程中若发现使用常量则直接以符号表中的值替换。编译过程中若发现对const使用了extern或者&操作符,则给对应的常量分配存储空间(兼容C)。
注意:
C++编译器虽然可能为const常量分配空间,但不会使用其存储空间中的值。
C++中的const常量:
可能分配存储空间,也可能不分配存储空间 。
当const常量为全局,并且需要在其它文件中使用,分配地址空间。
当使用&操作符取const常量的地址,分配地址空间。
const int a; //代表一个常整形数;
int const b; //代表一个常整形数;
const int *c; //是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改;
int * const d; //常指针(指针变量不能被修改,但是它所指向内存空间可以被修改);
const int * const e ; //一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改);
return 0;
}
初级理解:const是定义常量==》const意味着只读。
const好处,合理的利用const:
1.指针做函数参数,可以有效的提高代码可读性,减少bug;
2.清楚的分清参数的输入和输出特性;
int setTeacher_err(const Teacher *p)
const修饰形参的时候,在利用形参不能修改指针所向的内存空间。
C语言中的const是冒牌货:#include <stdio.h>
#include <stdlib.h>
int main()
{
const int a = 10;
int *p = (int*)&a;
printf("a===>%d\n", a);
*p = 11;
printf("a===>%d\n", a);
return 0;
}程序运行结果:
有程序运行结果可知,可以通过指针间接改变const修饰的变量。
现在我们将同样的代码使用C++编译器看看效果:#include <iostream>
#include <stdio.h>
int main()
{
const int a = 10;
int *p = (int*)&a;
printf("a===>%d\n", a);
*p = 11;
printf("a===>%d\n", a);
return 0;
}输出结果:
C++中const修饰的变量是一个真正的常量。
结果分析:C++编译器对const常量的处理,当碰见常量声明时,在符号表中放入常量,使用键值对的方式保存,一个key对应一个value;编译过程中若发现使用常量则直接以符号表中的值替换。编译过程中若发现对const使用了extern或者&操作符,则给对应的常量分配存储空间(兼容C)。
注意:
C++编译器虽然可能为const常量分配空间,但不会使用其存储空间中的值。
C++中的const常量:
可能分配存储空间,也可能不分配存储空间 。
当const常量为全局,并且需要在其它文件中使用,分配地址空间。
当使用&操作符取const常量的地址,分配地址空间。
相关文章推荐
- C/C++沉思-----const的简单用法
- C/C++中关于CONST关键字的一点说明
- 举一个函数说明C++里的 const
- c++ 字符串分割一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数说明:
- c++ const和指针复合使用说明
- C++友元函数友元类简单说明
- C++异常与windows结构化异常处理简单说明
- 关于C++里的find查找函数的简单说明
- C++ const使用说明
- C++异常与windows结构化异常处理简单说明
- 一个简单的C++程序及说明
- C++头文件的若干说明和const对象定义
- C++总的const使用说明
- 【C语言 C++】简单关键字Register,Const,Static,Volatile,typedef,Define的理解
- C++ 常量const简单总结
- C++构造函数的简单说明
- Dev-C++ 5.11简单使用说明
- 简单举例说明C++中break和continue语句的用法
- c++多线程编程安全性简单说明
- 关于C++中的const的简单反汇编分析