c语言指针问题请教

来源:百度知道 编辑:UC知道 时间:2024/07/01 03:22:12
main()
{
char *ptr = "Cisco Systems";
*ptr++;
printf("%s\n",ptr);
ptr++;
printf("%s\n",ptr);
}

程序运行结果是:
isco Systems
sco Systems

我这里有点不明白
*ptr++;和ptr++;有什么区别呢?

*ptr++;这样写也对???

*ptr++等价于*(ptr++)
其中*ptr称为指针即指向"Cisco Systems"的第一个字符 ptr++ 称为指针变量 即存储变量地址
所以:*ptr指向的是"Cisco Systems"字符中的第一个字符'C'
而ptr则指向的是'C'字符所对应的地址
因此*ptr输出值为字符'C'
而ptr输出值为'C'的地址

*ptr++等价于*(ptr++)
也等价于如下两句话:
*ptr;
ptr++;