C语言定义一个数组的时候,用char * s 和 char s[]有什么区别?

#include<stdio.h>
int main()
{
char *string="I am student";
*string='t';
printf("%s",string);
return 0;
想把I变成t,运行不了。
char *string="I am student";改成char string【】="I am student"就可以。
请问这两种定义方法有什么区别呢?还有要给用char *string="I am student";定义的数组修改里面的元素要怎么操作。

"I am student"是放在常量区的,是不能修改的
char string【】="I am student",编译器会把字符串从常量区复制到栈区,就可以修改了,其实修改的是复制后的字符串,常量区的并没有被修改
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-10
char *string是在常量区,不能修改它的值。
相似回答