鱼C论坛

 找回密码
 立即注册
查看: 1416|回复: 7

[已解决]指针问题

[复制链接]
发表于 2018-9-29 10:17:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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 = &num;
                printf("num: %d, &num: %p\n", num, &num);
                printf("*pc: %d, pc: %p\n", *pc, pc);
               
                *pc = 1024;
               
                return 0;
               
}
把pc重新赋值num后,再改动num的值为什么不可以呢?
最佳答案
2018-9-29 13:03:05
const int *pc = &cnum;  这里的 const 是修饰 int 的,使得指针 pc 参考的是一个不可变的量,也就是说不能透过指针去修改变量,只能参考。带你飞有讲到~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-29 10:22:34 | 显示全部楼层
你把const去掉就行了 const int 定义的数据相当于是常量了不可改变!
本题中*P的值永远不能变了  但是指针p可以改变!
详情请参考C++Primer第5版中对const的用法说明
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-9-29 10:58:34 | 显示全部楼层
紫霞圣人 发表于 2018-9-29 10:22
你把const去掉就行了 const int 定义的数据相当于是常量了不可改变!
本题中*P的值永远不能变了  但是指 ...

你说的参考的这个在哪里能找到?咱们论坛有吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-29 11:03:52 | 显示全部楼层
那是最新的一本C++的最经典的字典书。。学C++必看吧!!
这论坛没有,百度有
有问题先问百度,再上论坛,这样才能最快解决问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-29 13:03:05 | 显示全部楼层    本楼为最佳答案   
const int *pc = &cnum;  这里的 const 是修饰 int 的,使得指针 pc 参考的是一个不可变的量,也就是说不能透过指针去修改变量,只能参考。带你飞有讲到~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-29 15:10:14 | 显示全部楼层
本帖最后由 啊涂涂 于 2018-9-29 15:11 编辑
claws0n 发表于 2018-9-29 13:03
const int *pc = &cnum;  这里的 const 是修饰 int 的,使得指针 pc 参考的是一个不可变的量,也就是说不能 ...


const修饰int是什么意思呢?

而且为什么加上这个就不能透过指针去修改变量了?小甲鱼讲的我都听了好多遍了,但是不明白其中的原理是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-29 16:27:23 From FishC Mobile | 显示全部楼层
啊涂涂 发表于 2018-9-29 15:10
const修饰int是什么意思呢?

而且为什么加上这个就不能透过指针去修改变量了?小甲鱼讲的我都听了好 ...

指向 int,int 是可以被修改的。const int 能不能改?虽然指针p不是参考const int,但这个修饰是让指针无法修改变量的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-30 09:57:56 | 显示全部楼层
变量加const就是常变量,   常变量可以看作一个常量,  12345是一个常量, 12345就是12345,不能12345=12346;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-2 16:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表