一、字符串存放在数组中
就是在内存(栈,静态全局区)中开辟了一段空间存放字符串。
#include<stdio.h>
int main() {
char str[100] = "I Love C";
printf("修改前 str=%s\n", str);
str[0] = 'Y';
printf("修改后 str=%s\n", str);
return 0;
}
注意:
- 普通全局数组,内存分配在静态全局区
- 普通局部数组,内存分配在栈区
- 静态数组(静态全局数组,静态局部数组),内存分配在静态全局区。
二、字符串存放在文字常量区
在文字常量区开辟一段空间存放字符串,将字符串的首地址赋值给指针变量。
char * str= "I Love C";
str指向文字常量区时,它指向的内存不可以被修改。但是可以让str指向别的地方,给str重新赋值。
三、字符串存放在堆区
使用malloc等函数在堆区申请空间,将字符串拷贝到堆区。
#include<stdio.h>
#include<stdlib.h>
int main() {
char * str= (char*)malloc(10);
strcpy(str,"I Love C");
printf("修改前 str=%s\n", str);
str[0] = 'Y';
printf("修改后 str=%s\n", str);
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)