问题描述
- c 语言 字符串和 数组
-
char * a = "abc";
char a[4] = "abc";
以上有什么区别和联系
解决方案
char * a = "abc";
其实是
char 一个你看不见的变量[] = "abc";
char *a = 一个你看不见的变量;
解决方案二:
前者是一个字符指针,定义时仅分配了指针变量的空间,该指针指向一个字符串常量“abc”的首地址,a可修改(可做左值)但a[i]是不允许修改的。
后者是一个字符数组,定义时已经分配了空间并初始化为"abc",此时a不可修改但a[i]可修改。
但是引用数组内容时,以上两者a[i]值是相同的。
解决方案三:
char * a = "abc"; 指向常量字符串,只分配了 4 个字节的指针地址,不可以修改 a 中字符串的内容
char a[4] = "abc"; 为 a 分配了空间,可以修改 a 中字符串的内容
解决方案四:
第一个的"abc"是常量,一个数组型指针a指向这个常量。
第二个是的"abc"是变量,是申请了一个4个元素的数组变量,将这个数组变量分别赋值为abc
解决方案五:
?
strcat函数
??? strcat函数用于连结两个字符串。一般形式是:
??????? strcat(字符串1,字符串2);
&n......
答案就在这里:关于C语言字符串数组
----------------------
时间: 2024-11-03 01:30:25