谈 数组的初始化

数组的初始化

在了一些朋友写的代码时,一个简单的数组初始化,把人那个搞的,又是for循环,又是判断长度.

一般的数组初始化,也就是申请数组的时候我们就初始化,

1.char buffer[1000] = {0}; //一般的话,我们只将数组初始化为0,然后再使用.

C++中,编译器会把第一个初始化值赋给数组的第一个元素,然后用0赋值给其余的元素.

2.char buffer[] = {1,2,3,4,5,6}; 数组会自动计数,我们不用指定数字,以免画蛇添足反而出错。

3.char buffer[1000];  memset(buffer,10,sizeof(buffer)),对于有特殊需要的我们可以这样将数组中的值全部初始化为1个值,没必要用for循环,效率不高。

但是char buffer[1000]; memset (buffer,0,sizeof(buffer)) ,个人觉得这有点多此一举.

C中数组初始化是是什么样子,先留着.

1)字符数组与字符串: 字符数组是由若干个字符组成的数组,用于存储和处理字符数据。而字符串是由若干个字符组成的字符序列,通常以空字符 '\0' 作为结尾。字符串本质上是字符数组,但是字符串具有一些特殊的操作和处理方式,比如字符串可以用双引号括起来表示,而字符数组则需要用花括号括起来表示。 示例: ```c char str[] = "Hello"; // 字符串 char ch[] = {'H', 'e', 'l', 'l', 'o'}; // 字符数组 ``` 2)字符串的存储之数组初始化和赋值: 初始化字符串数组可以使用字符串字面量或者字符数组赋值;赋值字符串数组可以使用 strcpy 函数或者直接逐个字符赋值。 示例: ```c char str1[] = "Hello"; // 字符串初始化 char str2[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // 字符数组初始化 char str3[10]; // 字符数组定义 strcpy(str3, "Hello"); // 字符串赋值 ``` 3)字符串存储之输入: 输入字符串可以使用 scanf 或者 gets 函数,需要注意的是,gets 函数不安全,容易导致缓冲区溢出,因此建议使用 fgets 函数。 示例: ```c char str[100]; scanf("%s", str); // 从键盘输入字符串 fgets(str, 100, stdin); // 从键盘输入字符串,安全可靠 ``` 4)字符串的处理: 对于字符串的处理,常用的函数有 strlen、strcat、strcmp、strstr 等,可以实现字符串的长度计算、连接、比较、查找等操作。 示例: ```c char str1[10] = "Hello"; char str2[10] = "World"; int len = strlen(str1); // 计算字符串长度 strcat(str1, str2); // 字符串连接 int cmp = strcmp(str1, str2); // 字符串比较 char* p = strstr(str1, "World"); // 查找字符串 ``` 5)字符串的要点与难点: - 字符串是以 '\0' 结尾的字符数组,需要注意不要越界; - 字符串的拼接、复制等操作需要考虑内存的分配和释放; - 字符串的比较需要注意编码的问题; - 字符串的输入需要注意安全性和输入格式的问题; - 字符串的长度需要注意字符集和编码的区别。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值