为什么这个语句有错误,我被这个语句弄的有点懵:看下面:
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/18 03:45:27
为什么这个语句有错误,我被这个语句弄的有点懵:看下面:
char*str;str=‘a’;
为什么这样就是正确的:char*str;str="a";
char*str;str=‘a’;
为什么这样就是正确的:char*str;str="a";
![为什么这个语句有错误,我被这个语句弄的有点懵:看下面:](/uploads/image/z/16597224-0-4.jpg?t=%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B8%AA%E8%AF%AD%E5%8F%A5%E6%9C%89%E9%94%99%E8%AF%AF%2C%E6%88%91%E8%A2%AB%E8%BF%99%E4%B8%AA%E8%AF%AD%E5%8F%A5%E5%BC%84%E7%9A%84%E6%9C%89%E7%82%B9%E6%87%B5%3A%E7%9C%8B%E4%B8%8B%E9%9D%A2%3A)
指针的状态只要3种是合法的
1.指针指向常量0;如char *a=0;
2 指针指向一个类型相符的地址 如char b='a'; char *a=&b;
3指针指向一个特定对象的下一地址
你让指针指向一个字符常量 显然不是3种合法状态之一
再问: 那为什么这样就是正确的:char*str;str="a";
再答: "a"是一个字符串常量 其是由{'a','\0'}组成,他是一个数组 ; str="a"想当于str={'a','\0'},str指向的是一个数组的首地址
1.指针指向常量0;如char *a=0;
2 指针指向一个类型相符的地址 如char b='a'; char *a=&b;
3指针指向一个特定对象的下一地址
你让指针指向一个字符常量 显然不是3种合法状态之一
再问: 那为什么这样就是正确的:char*str;str="a";
再答: "a"是一个字符串常量 其是由{'a','\0'}组成,他是一个数组 ; str="a"想当于str={'a','\0'},str指向的是一个数组的首地址