指针问题
#include <stdio.h>int main()
{
int num = 520;
const int cnum = 880;
const int *pc = &cnum;
printf("cnum: %d, &cnum: %p\n", cnum, &cnum);
printf("*pc: %d, pc: %p\n", *pc, pc);
pc = #
printf("num: %d, &num: %p\n", num, &num);
printf("*pc: %d, pc: %p\n", *pc, pc);
*pc = 1024;
return 0;
}
把pc重新赋值num后,再改动num的值为什么不可以呢? 你把const去掉就行了 const int 定义的数据相当于是常量了不可改变!
本题中*P的值永远不能变了但是指针p可以改变!
详情请参考C++Primer第5版中对const的用法说明 紫霞圣人 发表于 2018-9-29 10:22
你把const去掉就行了 const int 定义的数据相当于是常量了不可改变!
本题中*P的值永远不能变了但是指 ...
你说的参考的这个在哪里能找到?咱们论坛有吗? 那是最新的一本C++的最经典的字典书。。学C++必看吧!!
这论坛没有,百度有
有问题先问百度,再上论坛,这样才能最快解决问题 const int *pc = &cnum;这里的 const 是修饰 int 的,使得指针 pc 参考的是一个不可变的量,也就是说不能透过指针去修改变量,只能参考。带你飞有讲到~ 本帖最后由 啊涂涂 于 2018-9-29 15:11 编辑
claws0n 发表于 2018-9-29 13:03
const int *pc = &cnum;这里的 const 是修饰 int 的,使得指针 pc 参考的是一个不可变的量,也就是说不能 ...
const修饰int是什么意思呢?
而且为什么加上这个就不能透过指针去修改变量了?小甲鱼讲的我都听了好多遍了,但是不明白其中的原理是什么 啊涂涂 发表于 2018-9-29 15:10
const修饰int是什么意思呢?
而且为什么加上这个就不能透过指针去修改变量了?小甲鱼讲的我都听了好 ...
指向 int,int 是可以被修改的。const int 能不能改?虽然指针p不是参考const int,但这个修饰是让指针无法修改变量的值 变量加const就是常变量, 常变量可以看作一个常量,12345是一个常量, 12345就是12345,不能12345=12346;
页:
[1]