C语言 数组初始化探究

数组初始化的方法主要有 { } 和 " "两种, 那么两者的使用对象有什么区别,什么时候去使用呢?

一. { } 主要用来初始化数字

int arr[5] = {1,2,3,4,5}; //初始化与下标相同, 完全初始化.  
int arr[5] = {1,2,3}; //剩余未初始化部分用零0补充, 不完全初始化
int arr[] = {1,2,3,4,5};//没有下标的初始化,根据初始化的确定个数,
                          //如这里元素个数为5,数组下标也为5,等同于1数组

int arr[10] = {0};//全部初始化为0

        { }也能初识化字符.

char arr[] = {'a', 'b', 'c'};// 元素个数3,abc
// { }内初始化字符串要借助单引号''的力量

char arr[5] = {'a', 'b', 'c'};//元素个数5, abc\0\0.不足用零补充. \0的ASCII码值就为0
char arr[5] = {'a', 98, 'c'};

    

二." "主要用来初始化字符串

" "之间的所有内容便是存储的元素

char arr[10] = "1,2,3,4,5";   // 元素有10个 1,2,3,4,5 \0
char arr[] = "123";   // 4个元素, 1 2 3 \0 

char arr[6] = "abcd";  // 6个元素,a b c d \0 0
​char arr[] = "abcd";  // 5个元素,a b c d \0 

注意: 字符串初始化,数组数据类型必须是char,字符类型.

三.两种方法字符串初始化的区别

(一)存储元素不同

char arr1[] = "abc";             // a b c \0
char arr2[] = {'a','b','c'};     // a b c

(二)打印结果不同

bit
bit烫烫烫烫it

printf("%s", arr1),这是因为%s时只有遇到\0才会停止读取,否则一直往后读取,直到遇见\0

同样,计算字符串长度strlen(arr1)与strlen(arr2)也有同样的差别.

数组长度与字符串长度是两个不同的东西

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值