*(pstring+1)和(*pstring+1)的区别
指针的数据加和地址加分别如何表示?
设有 char * pstring = "AWC";
则 pstring+1 指针所指向的地址加1(字符W的地址)
*pstring+1 为指针所指向的数据加1('A'的ASCII码65+1=66,即为B的ASCII码)
你可运行下面程序来理解:
#include<stdio.h>
int main()
{
char * pstring = "AWC";
printf("%x
",pstring);
printf("%x
",pstring+1);
printf("%c
",*pstring+1);
printf("%c
",*(pstring+1));
return 0;
}
程序的运行结果:
前面的是先将指针加1,然后再取它的内容
而后面的是先取内容,然后加1
本质区别,前面的是地址运算
而后面的是内容(数值)运算
你前面的就是地址加
而后面的就是数据加
括号表示优先级不一样
*(pstring+1)表示先地址加,然后取新地址数值
(*pstring+1)表示先取数值再数值加1
下一篇:电脑开机时间太慢与什么有关系?
上一篇:防火墙在哪里关闭
热门标签: