关于字符指针变量的问题
如用字符串格式输出指针变量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指向字符串,就不晓得了~