第1个回答 2013-09-13
char 本来就是用来接字符的,并且是单个字符,长度只占1个字节。正常我们输入是
char a;
scanf("%s",&a);
char定义时用单引号,只能有一个字母,数字。char c='c'。
所以如果你想用char保存字符,就得用数组了。建议使用string……
第2个回答 2013-09-13
char *a;分配了一个指针,但是没有给它分配存放数据的空间大小。就像酒店老板预计要造5个房间,为101,102,103,104,105,房间号是有了,但是要把具体的房间给造出来。如果没有造房间,空有房间号,顾客是无法住的。
char *a="hello world"; 这个就相当于本来就造好了一个房间,现在只是把这个房间挂个号叫101。
明白了吗?
第3个回答 2018-09-30
char*a="abcd"; 中a指针指向的地址存储的内容"abcd"为字符串常量,是放在静态存储区;
char a[10]; 存储的内容放在栈上;
用scanf 进行输入操作时,只能修改栈中的变量值,静态存储区的常量值不能被修改,所以会报内存错误
第4个回答 推荐于2017-10-10
C语言中,* 除了表示 “乘”外,还表示 “指针”的意思。
这个 char *a 就是定义 a 为 指针类型,指向 的内容 为 char 型的 数据。