永发信息网

c语言 pointer 完全一团浆糊…

答案:2  悬赏:0  手机版
解决时间 2021-01-24 14:47
我的理解是:int *p=&x, 这里定义的是pointer p的值是x的地址&x,之后p就是一个指向x的pointer,*p就是x的值。之后我们想改x的值为y,就写*p=y。
那么在string里,char *p="kate",想把这个词换成cat,为什么是p="cat"而不是*p="cat"?
然后char p[ ]也是一个pointer吗?
char *p[ ]和char p[ ]又有什么区别呢?
pointer好难啊TT_TT
最佳答案
1、你对于 int *的理解是对的。其实,char *、float *、double *也是一样的。
2、对于char *pstr = "kate"的理解需要分清,"kate"是多个字符。
char c = 'A';
char *pc;
char *pstr = "kate";
将pc执行(1)中的操作,都会得到你要的结果,但对pstr执行的操作只会修改'k',而不会涉及余下的三个字符"ate"。对于多个字符,编译程序会在存放这些字符的尾部添加一个字符'\0',其ASCII值是0,这是为了方便string函数处理字符串而特意添加的,而对于int等基础类型的多个变量的存储中则没有与这个类似尾部添加符。
对于多个字符的处理与字符数组有很多相同之处,也有不同之处,说起来很啰嗦。比如,数组不能以数组名直接赋值,对于字符串指针也有同样的限制,数组名不能被当作左值(不能出现在=的左边),但指针可以,当指针是左值时,只是将指针的指向改变为新值,而并不是改变了指针指向的内容(昏了没?),......,二者间区别还有,这里不说了,在以后的学习当中慢慢体会吧。
全部回答
指针变量存的是地址; pointer_1=&aint* pointer_1 =&a等价于int *pointer_1,前面加*等于指向pointer_1所存地址的值
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
冲口小学(信阳罗山县)地址在什么地方,我要处
已知等腰三角形的周长为25cm,被一腰上中线所
刘楼小学(信阳罗山县)地址在什么地方,我要处
联通3g卡流量已经超过开通流量包能不能抵消
房地产市场调研的核心内容是()。A.房地产市场
李敖的厚黑学 怎么样?
周湾小学(信阳罗山县)地址在什么地方,我要处
沈阳到遵义最优惠的路线
朱庄小学(信阳罗山县)地址在哪,我要去那里办
“若真修道人,不见人间过”有道理吗
为了绿化城市,准备在如图所示的区域内修建一
把一个小数点像左移两位后比原数少316.8这个
柴油发动机为什么要有燃油滤清器
和新郎相恋四年结婚用一句话概括
一辆汽车的速度是70千米/小时,现在用一块每
推荐资讯
姚晨真的先出轨吗?难道我们都误会凌潇肃和唐
生物体的形态特征或生理特性及行为方式,叫做
济宁市泗水县柘沟营业厅地址有知道的么?有点
谁知道球队后面括号内的数字什么意思?
伺服电机三环控制中位置环变化对内环有什么影
哪个国家是援助中国最多的国家
资料:位于意大利中部的台伯河,是该国第三长
叙述反映陆地环境“牵一发而动全身”特征的是
地方办理的职称人员进四库一平台吗
总分的写法介绍小动物
万国国际旅行社地址有知道的么?有点事想过去
为什么鞋子刷完还更有味儿?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?