这一点其实就是为什么数组比链表访问更快了。链表往往是在内存中随机分布的,通过指针索引。
Cpu在计算时,会有一部分数据缓存在cache中,数组由于连续,损耗可预计(能不能装的下),就别写进缓存中
下次寻址的时候就快了。链表呢,随机存储就不是很方便载入缓存了
另外,C语言只有静态数组,没有动态数组,无他,高效尔。
int a[8] = {1,2,3,4,5}; 全部初始化只能这么写
如果已知长度可以省略长度int a[] = {1,2,3,4,5};
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 的值。
原文:https://www.cnblogs.com/ming-fei/p/14588903.html