分类：电脑/网络-程序设计-C/C++
问题：急谁可以告诉我这题的结果main(){chara;char*p= 
main(){ char a; char *p=&a; *p++='a'; *p++='b'; *p++='c'; *p++='d'; *p++='\0'; printf("%s",&a); getch(); ex();}告诉我结果是a 还是abcd 或者是别的并且解释一下好吗
回答：结果是 "abcd". 但是这样写代码是标准的错误范例。
因为char a, 只有一个 char的空间。要放下"abcd"需要5个char的空间。
如果这样写，'bcd\0'四个字符会战用其他的堆栈位置，如果这些位置在堆栈中是被其他变量用到的话就有可能会使程序产生不可预期的结果。