首页 > 编程语言 > 详细

C语言之数组

时间:2021-03-28 17:45:35      阅读:12      评论:0      收藏:0      [点我收藏+]

数组的内存是连续的

这一点其实就是为什么数组比链表访问更快了。链表往往是在内存中随机分布的,通过指针索引。
Cpu在计算时,会有一部分数据缓存在cache中,数组由于连续,损耗可预计(能不能装的下),就别写进缓存中
下次寻址的时候就快了。链表呢,随机存储就不是很方便载入缓存了
另外,C语言只有静态数组,没有动态数组,无他,高效尔。

数组初始化

一维

int a[8] = {1,2,3,4,5}; 全部初始化只能这么写
如果已知长度可以省略长度int a[] = {1,2,3,4,5};

  • 当初始化的元素不够的话,会用0填充
  • 对于整形:用0填充
  • 对于字符串:用‘\0‘填充
  • 对于float、double 用0.0填充

二维

int[2][2] = {{1,1},{1,1}} 和 int[2][2] = {1,1,1,1}等价

字符串数组

C语言中没有string,所以用char str[4] = "abc";* C语言中默认字符串是‘\0‘结束的。
所以"abc"的长度是4,strlen(str)结果是3,是因为他也是遇见‘\0‘结束的。
char str[3] = "abc" 是会报错的

字符串连接

strcat(arr1,arr2)作用:strcat() 将把 arr2 连接到 arr1后面,并删除原来 arr1 最后的结束标志‘\0‘。

字符串复制

strcpy(arr1,arr2)作用:strcpy() 会把 arr2中的字符串拷贝到 arr1 中,字符串结束标志‘\0‘也一同拷贝。

字符串比较

strcmp(arr1, arr2)
作用:字符本身没有大小之分,strcmp() 以各个字符对应的 ASCII 码值进行比较。strcmp() 从两个字符串的第 0 个字符开始比较,如果它们相等,就继续比较下一个字符,直到遇见不同的字符,或者到字符串的末尾。
返回值:若 arr1和 arr2相同,则返回0;若 arr1大于 arr2,则返回大于 0 的值;若 arr1小于 arr2,则返回小于0 的值。

C语言之数组

原文:https://www.cnblogs.com/ming-fei/p/14588903.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!