请教《C与指针》里的一个问题。

2020-02-03 10:12发布

在第六章里面,首先声明:
char ch='a';
char *cp=&ch;
然后表达式*cp++的运行步骤为3步
1:  操作符产生cp的一份拷贝
2:然后++操作符增加cp的值
3:最后,在cp的拷贝上执行间接访问操作。
看的有点不明白,按照他的说法,这个表达式的值不就等于*cp了吗,也就是如果一个赋值语句p=*cp++;那么只运行一次的结果就与p=*cp是一样的对吗?
这就是上面说的p获得的是cp最初的拷贝,然后将cp的值〔不是拷贝〕加1,最后再执行间接访问操作〔是在cp的拷贝上进行访问操作,而不是加1后cq的新值〕
请问这样理解是正确的吗?
晕,加号都没显示
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
yajira
1楼-- · 2020-02-03 11:35
 精彩回答 2  元偷偷看……
lcofjp
2楼-- · 2020-02-03 12:27
回复【楼主位】muzheyun
-----------------------------------------------------------------------

你的理解是正确的。
char ch = 'a';
char *cp = &ch;

char other = *cp++;
类似于:
{
    char temp = *cp;
    cp++;
    other = temp;
}
muzheyun
3楼-- · 2020-02-03 17:10
谢谢两位,这两天正研究这本书呢,不知道研究完能不能对指针有个更深的理解
maxuedong
4楼-- · 2020-02-03 21:02
指针很重要
小油猪儿
5楼-- · 2020-02-04 01:10
lcofjp 发表于 2011-5-19 11:50
回复【楼主位】muzheyun
-----------------------------------------------------------------------

这样说很明白啊~总分不清改先结合左边还是右边,谢谢记下

一周热门 更多>