关于字符指针变量的问题
如用字符串格式输出指针变量p所指向的字符串,书中说先输出p所指向的字符,然后自动使p+1指向下一字符输出,直至输出’\0’为止。那我想问输出后p是指向空操作字符了呢,还是如输出前一样没变,那个自动加1改不改变p的值。
程序代码:#include <stdio.h>
#include <stdlib.h>
void main()
{
char *p;
char str[12] = "hello word!",temp;
p = (char *)malloc(12*sizeof(char));
p = str;
printf("%c,%s\n",temp = *p,p);
system("pause");
}调试结果:h,hello word!
printf()是从右到左运算的,如果p改变的话,temp输出应该不会是h~~
不过到底是不是编译器内部修改p指向字符串,就不晓得了~









实乃多此一举:p = (char *)malloc(12*sizeof(char));
好吧,我错了~是多此一举,结果是浪费内存空间