C++中的常量问题

在C++中,常量可以通过两种方式来定义:

1、在声明或定义变量之前用const;

2、通过宏定义,也就是#define


例如:将pi定义为常量,const float pi=3.14;或  #define pi 3.14  


接下来,讨论下const和#define之间的区别:

1、define只能用来做文本宏替换,define的生命周期在编译器就会结束,存在于程序的代码段,在实际程序中指示作为一个常数;而const常量存在于程序的数据段,并在堆栈中分配有空间;

2、define定义的常量在程序运行时不可以被调用、传递,因为define定义常量时没有分配内存空间,仅仅只是给一个常数起了个别名;而const常量在程序中确实存在,所以在程序运行时可以被调用和传递;

3、define定义的常量没有数据类型;而const定义的有数据类型。


常量指针:

例如:char *const a;    //表示字符指针a本身是常量,但是a所指内存空间的数据是可以改变的,注意定义时一定要初始化;

    char const* a;和const char * a;//表示a所指的内存空间中的数据为常量,不可以改变,但是指针的本身是可以改变的;

          const char * const a;//这种表示方法表明指针a本身是常量,并且a所指的内存空间中的数据也为常量,这种定义时一定要初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值