#include <stdio.h>
int main(int argc, char *argv[])
{
// 字符串的存储形式: 数组 、 字符串指针 、 堆 ; 字符串就是以'\0'结尾的若干字符的集合
// 字符数组:在内存(栈、静态全局区)中开辟了一段空间存放字符串
// 字符串指针:在文字常量区开辟了一段空间存放字符串,将字符串的首地址赋给str;文字常量区里的内容是不可修改的
// 堆:使用malloc函数在堆区申请空间,将字符串拷贝到堆区
// 示例1
char string[100] = "I love C!!";
printf("%s\n",string); // I love C!!
string[0] = 'y'; // y love C!!
printf("%s\n",string);
// 示例2
char s1[100];
// s1 = "I love C!!2"; // 报错
strcpy(s1, "I love C!!2"); // 正确
printf("--------%s-------------\n",s1); // --------I love C!!2-------------
char *str = "I love C!";
printf("%s\n",str); // I love C!
// 指针变量str 只能存放字符地址编号; 这个字符串中的字符不能存放在str指针变量中
// str只是存放了字符I的地址编号 字符串存放在了文字常量区,此时字符串的内容不可修改
char *str1 = (char*)malloc(10*sizeof(char)); // 动态申请了10个字节的存储空间,首地址给str赋值
strcpy(str1, "I love C"); // 将字符串“I love C”拷贝到str指向的内存里
// scanf("%s",str1);
printf("%s\n",str1); // I love C
*str1 = 'y';
printf("%s\n",str1); // y love C
return 0;
}
c语言-字符串和指针
于 2023-07-14 16:06:32 首次发布