【发布时间】:2012-10-21 16:50:26
【问题描述】:
#include<stdio.h>
main()
{
char c = 'R';
printf("%c\n",c);
c++;
printf("%c\n",c);
char *ptr ="Ramco Systems";
printf("%c\n",(*ptr));
(*ptr)++;
printf("%d\n",(*ptr));
}
第一个、第二个、第三个 printf 的输出是“R”、“S”和“R”(如预期的那样)。但是“(*ptr)++;”这一行给出运行时错误。有人能解释一下为什么吗?
【问题讨论】:
-
看起来你并没有增加指针。您正在取消引用指针并增加值。
-
我猜你想用的是 *ptr++ :)
-
我相信目的是将
R递增到下一个 ansi 字符,因此代码中没有错字 - 只是指针寻址的内存是不可修改的。