请教《C与指针》里的一个问题。
在第六章里面,首先声明: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的新值〕
请问这样理解是正确的吗?
晕,加号都没显示 这个和
a = i++是基本一致的
*cp++ 不循环的话 跟 *cp是一样的 回复【楼主位】muzheyun
-----------------------------------------------------------------------
你的理解是正确的。
char ch = 'a';
char *cp = &ch;
char other = *cp++;
类似于:
{
char temp = *cp;
cp++;
other = temp;
} 谢谢两位,这两天正研究这本书呢,不知道研究完能不能对指针有个更深的理解 指针很重要 lcofjp 发表于 2011-5-19 11:50 static/image/common/back.gif
回复【楼主位】muzheyun
-----------------------------------------------------------------------
这样说很明白啊~总分不清改先结合左边还是右边,谢谢记下
页:
[1]