C语言定义一个数组的时候,用char * s 和 char s[]有什么区别?
#include<stdio.h>intmain(){char*string="Iamstudent";*string='t';printf("%s",string);r...
#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";定义的数组修改里面的元素要怎么操作。 展开
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";定义的数组修改里面的元素要怎么操作。 展开
2个回答
2020-02-29
展开全部
"I am student"是放在常量区的,是不能修改的
char string【】="I am student",编译器会把字符串从常量区复制到栈区,就可以修改了,其实修改的是复制后的字符串,常量区的并没有被修改
char string【】="I am student",编译器会把字符串从常量区复制到栈区,就可以修改了,其实修改的是复制后的字符串,常量区的并没有被修改
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询