VC静态字符串数组怎么初始化
答案:2 悬赏:30 手机版
解决时间 2021-02-23 22:15
- 提问者网友:像風在裏
- 2021-02-22 22:07
VC静态字符串数组怎么初始化
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-02-22 23:15
数组的初始化有两种:第一种:String[] stu=new String[]{"1","2","3"};
第二种:String[] stu=new String[3];
stu[0]=1;
stu[2]=2;
stu[3]=3;
第二种:String[] stu=new String[3];
stu[0]=1;
stu[2]=2;
stu[3]=3;
全部回答
- 1楼网友:第幾種人
- 2021-02-22 23:35
楼主是否是说一个数组空间,在初始化的时候赋值为字符串?无论如何要理解数组与字符串之间的区别:数组一般表示连续定长的空间,若不定长则为理解为指针,字符串存在'\0'字符的结束符,下面可以促进理解:
1. char a[] = "0123456789"; sizeof("0123456789") = ? sizeof(a) =?
a 为数组,它是定长的编译器给它的长度为 11, sizeof("0123456789")=sizeof(a)=11
2. void func(char a[]){ size(a) =? }
a 作为函数参数视为指针, sizeof(a)=4 (32位地址空间)
3. char *str = "0123456789", 中 sizeof(str), strlen(str)
sizeof(str)=4, strlen(str)=10 计算字符串长度是去掉'\0'的长度.
因此在定义数组的时候,如果用它 hold 一个字符串,一般定义为 char a[len + 1]={0}; 而在拷贝的时候必须进程长度判断,if(strlen(str) <= len) strcpy(a, str); else ... 或者另外一种做法就是 memcpy(a, str, len);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯