工商银行口令卡是什么:C++中的弱智问题:

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 00:08:40
char *p1 = 0; p1++

上面的P1++不是等于P1=P1+1吗?意思是说将P1存储的地址后移一个单位还是将P1存储的地址的值加1?

p1 是中存储的是地址,p1++表示地址增1,使p1指向下一个存储单元,也就是你所说的:将P1存储的地址的值加1。

如果希望p1中地址指向的存储单元的内容增1,需写成下面的形式:
(*p1)++;

最好不要写成 “*p1++”这种形式,在C++中,涉及指针的东西,
尽量用括号明确规定优先级,以免不必要的麻烦。

让我看你的代码应该是不成立的 指针只能指向另一个变量的内存地址
那你做个指针直接副值 不可能实现吧

后面那个p1++的意思是原来指向地址向前移动一个位置
不是值加1 是地址变了 而值才会变的
就象两个篮子里有东西一样 本来你要拿的是第一个 但你又走了一步
拿了第二个 那就是因为地址变了 而导致它的值发生了改变

对于char型的指针,p1++是指p1的值加1,如果原来p1是指向0地址,那么现在就指向1地址。
说简单点就是你的问题的后者P1存储的地址的值加1才是正确的。

p1是一个指针,指针加1就表示后移一个变量大小
*p1 ++ 才表示内容加1

移动一个单位

*p1 是指针。。意思是说将P1存储的地址后移一个单位