c++ const 关键字 const与#define区别
来源:互联网 发布:知乎经典问答搞笑 编辑:程序博客网 时间:2024/06/05 05:58
1.定义常量(必须进行初始化,且常量不可修改) const int a=10; 或int const a=10;
2.定义指向常量的指针(常量指针)(通过常量指针不能修改指针所指内容的值,可改变指向) int a=19; const int *pa=&a;
3.定义指针常量(必须在声明时进行初始化,指针常量的值不可变,可以修改指针所指内容)
int b=10; int *const pb=&b;
4.定义指向常量的指针常量(指针常量指向指针对象,但他又指向常量,所以它指向的对象不可变)
const int a=10; const int *const pa=&a;
#include <iostream>
using std::cout;
using std::endl;
int main()
{
const int a=100;//const常量,必须进行初始化,且常量值不可改变
//int &pa=a;//常量不可引用
//int *pa=&a;//只有常量指针才可以指向常量
cout<<a<<endl;
int b=1;
const int *pb=&b;//常量指针,通过常量指针不能修改指针所指内容的值,可以改变指向
//*pb=2;//不可以
pb=&a;//改变指向可以
b=2;//直接改变其值可以
cout << *pb <<endl;
int c=5;
int * const pc=&c;//指针常量,可以修改指针所指内容的值,不可修改指向
*pc=2;//可以改变其内容
c=4;//可以直接改变内容
//pc=&b;//错误,不可改变其指向
cout << *pc <<endl;
int d=55;
const int * const pd=&d;//指向常量的指针常量,都不可变
//*pd=1;//不可通过指针改变变量的值
//pd=&a;//不可改变指向
//d=6;//可以直接改变变量的值
cout << *pd<< endl;
return 0;
}
运行结果
const 与 #define区别(尽量以const代替#define)
(1)编译器处理方式不同
-define宏在预处理阶段展开
-const常量在编译运行阶段使用
(2)类型和安全检查不同
-define宏没有类型,不做任何类型检查,只是展开
-const常量有具体类型,在编译阶段会执行类型检查
阅读全文
0 0
- c++ const 关键字 const与#define区别
- #define 与const区别
- define与const 区别
- const与define区别
- const与define区别
- const 与#define区别
- C语言 #define 与 const的区别
- C++,const与define的区别
- const与#define的区别
- #define与const的区别
- define与const的区别
- const与#define的区别
- const与#define的区别
- const 与 #define的区别
- const与#define的区别
- const与#define 区别详解
- const 与 #define的区别
- const与define的区别
- 判断一个字符串的ip是否是IP合法的ip地址
- im2double的用法
- CSS学习札记-clip属性
- PMP流程结构整理
- Fragment学习
- c++ const 关键字 const与#define区别
- C#设计模式(三)工厂方法模式
- 军事联合作战仿真系统
- RAID概述
- 通过原型继承创建新对象
- pdfbox 解析 PDF转HTML、Text文件
- Java的MD5加密和解密
- mapreduce基础知识
- Linux下查看/管理当前登录用户及用户操作历史记录