C 语言里为什么这样初始化字符串是错误的
答案:2 悬赏:20 手机版
解决时间 2021-03-19 04:11
- 提问者网友:謫仙
- 2021-03-18 20:27
C 语言里为什么这样初始化字符串是错误的
最佳答案
- 五星知识达人网友:猎心人
- 2021-03-18 21:35
char data[20];
data="hello";
先解释这个为什么是错的,因为data="hello"; 实际上就是data[0]="hello";是 data字符数组的首个字符,很显然不能放字符串。
至于两者的区别,后者可以可以更方便通过指针来访问修改删除元素。
char *data;
data = "hello"; 这句中的data是指针变量,指向"hello"这个字符串在内存中的首地址。
data="hello";
先解释这个为什么是错的,因为data="hello"; 实际上就是data[0]="hello";是 data字符数组的首个字符,很显然不能放字符串。
至于两者的区别,后者可以可以更方便通过指针来访问修改删除元素。
char *data;
data = "hello"; 这句中的data是指针变量,指向"hello"这个字符串在内存中的首地址。
全部回答
- 1楼网友:一把行者刀
- 2021-03-18 21:45
其实没有字符串数组的,c++有叫string的容器,在c语言中是这样的
char *a="hello";只不过是编译器给你处理了分配内存,赋值的操作,当然你也可以近似看做是字符串数组
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯