char *p是什么意思啊。。不懂C,望相助
答案:1 悬赏:0 手机版
解决时间 2021-01-04 04:49
- 提问者网友:萌卜娃娃
- 2021-01-03 05:41
char *p是什么意思啊。。不懂C,望相助
最佳答案
- 五星知识达人网友:七十二街
- 2021-01-03 06:19
向的目标空间的内容不可变化.
例如定义char c='A'; p=&c;则c的内容不可以变化.如c='B';等一些企图改变变量c的值的做法都不行.
然而p仍然是动态的,就是它还可以指向别的空间,被赋予新的地址值,只是被他指向的目标空间的内容不可变化,如上面的c值始终为'A',不可以更新,而一但p指向别处,则c就更新了.
问题补充中的变化实质上是p的值的变化,这是允许的.因为字符串出现在表达式中时它的值是它的首字母的地址,所以"xxx"和"yyy"都是地址值.
而若企图改变*p的值则是非法,例如问题补充中,企图修改"yyy"中第1个y所在位置的值则被认为是非法的.
最后我想说const char *p;与char * const p;的区别,他们恰好相反,后者是表明指针p的值不可变,但它指向目标的值可变.
例如char * const p; char c='A',m; p=&c;执行后,c='B'可以执行,但p=&m则被认为是非法.
就这么多了,希望能帮助到你.
例如定义char c='A'; p=&c;则c的内容不可以变化.如c='B';等一些企图改变变量c的值的做法都不行.
然而p仍然是动态的,就是它还可以指向别的空间,被赋予新的地址值,只是被他指向的目标空间的内容不可变化,如上面的c值始终为'A',不可以更新,而一但p指向别处,则c就更新了.
问题补充中的变化实质上是p的值的变化,这是允许的.因为字符串出现在表达式中时它的值是它的首字母的地址,所以"xxx"和"yyy"都是地址值.
而若企图改变*p的值则是非法,例如问题补充中,企图修改"yyy"中第1个y所在位置的值则被认为是非法的.
最后我想说const char *p;与char * const p;的区别,他们恰好相反,后者是表明指针p的值不可变,但它指向目标的值可变.
例如char * const p; char c='A',m; p=&c;执行后,c='B'可以执行,但p=&m则被认为是非法.
就这么多了,希望能帮助到你.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |