问个指针的小问题char**p;char*pt;pt=*p;pt
char **p; char *pt; pt=*p; pt=*(p+1); 假设赋值什么的都没问题。 我现在要问的是 pt=*p+1;这个语句可不可以用? 当然我知道它和pt=*(p+1);有区别。 只是想问问pt=*p+1;这个语句成立不?
这个问题正好前几天我遇到过. 1.pt=*p+1;这个语句完全正确. 2.根本原因: 因为指针运算符*的优先级高于+ 3.两者区别: //*p+1等于取p所指的值之后,再给所取的值加1.即: (先取值,值加1); //而 pt=*(p+1)用括号改变了运算次序,先将p的地址向后指1,然后取地址中的值. 即: *p+1 (地址加1,后取值);