摘要:结论一维数组在内存中是连续存放的二维数组关于二维数组的创建二维数组中的表示行数,表示列数注意二维数组的不完全初始化剩下的元素也都默认为。示例如下关于二维数组的打印我们通过二维数组的下标来进行打印,而二维数组的行和列下标都是从开始的。
目录
数组的[]中要给一个常量才行,不能使用变量。
错误写法:
正确写法:
除整型之外还可创建以下数组:
注意:不完全初始化,剩下的元素默认初始化为0。
示例如下:
我们需根据其数组的下标来进行打印,而下标是从0开始。
举例:
#include#define _CRT_SECURE_NO_WARNINGSint main(){ char arr [] = "abcdef"; // " a b c d e f /0" // 下标 " 0 1 2 3 4 5 " int i = 0; // 定义整型 ‘i’ 为下标数 for (i = 0; i < 6; i++) { printf("%c", arr[i]); } return 0;}
结果为:
siazeof(计算变量、数组、类型的大小—单位是字节—操作符)
strlen(求字符串的长度—“/0”之前字符个数—仅针对字符串求长度—得引用头文件
示例1如下:
#define _CRT_SECURE_NO_WARNINGS 1#include#includeint main(){ char arr4[] = "abcdef"; // "abcdef/0" printf("%d/n", sizeof (arr4) ); printf("%d/n", strlen (arr4)); return 0;}
结果如下:
sizeof (“a b c d e f /0”)一共七个元素—— 7*1=7
strlrn (“a b c d e f /0”)“/0”之前6个字符—— 6
示例2如下:
#define _CRT_SECURE_NO_WARNINGS 1#include#includeint main(){ char arr1[] = "abc"; char arr2[] = { "a", "b", "c" }; printf("%d/n", sizeof(arr1)); printf("%d/n", sizeof(arr2)); printf("%d/n", strlen(arr1)); printf("%d/n", strlen(arr2)); return 0;}
结果如下:
sizeof(arr1)— " a b c /0 " — 4*1=4
sizeof(arr2)— { "a", "b", "c" } — 只有三个元素— 3*1=3
strlen (arr1)— " a b c /0 " — "/0"之前三个字符—3
strlen (arr2)— { "a", "b", "c" } — 因为strlen是运算到"/0"结束,我们并不知道在元素"c"之后的元素,所以其所打印出来数的应是随机数
sizeof是可计算变量、数组、类型的大小的操作符,当我们计算整个数组的大小然后再除以数组中单个元素的大小,便可以得到该数组的元素个数。
举例:(利用这一点我们可以很方便的打印出数组中的各元素)
#include#define _CRT_SECURE_NO_WARNINGSint main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,0 }; int sz = sizeof(arr) / sizeof(arr[0]); // 利用 sizeof 计算数组中元素的个数 int i = 0; for (i = 0; i < sz; i++) { printf("%d", arr[i]); } return 0;}
结果为:
举例:(我们先打印出数组中各元素的地址寻找规律)
#include#define _CRT_SECURE_NO_WARNINGSint main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr) / sizeof(arr[0]); int i = 0; for (i = 0; i < sz; i++) { printf("arr[%d]=%p/n",i,&arr[i]); } return 0;}
结果为:(该地址为16进制)( 0-9 a(10) b(11) c(12) d(13) e(14) f(15))
我们不难观察出其相邻元素地址之间都相差为4,为整型元素4个字节的大小。
结论:一维数组在内存中是连续存放的
二维数组中的【3】表示行数,【4】表示列数
注意:1:二维数组的不完全初始化剩下的元素也都默认为0。
2: 二维数组行可省略,列不可省略。
示例如下:
我们通过二维数组的下标来进行打印,而二维数组的行和列下标都是从0开始的。
举例:
#include#define _CRT_SECURE_NO_WARNINGSint main(){ int arr[3][4] = { {1,2,3},{4,5} }; // 下标 : 0 1 2 3 // // 0 1 2 3 0 // 1 4 5 0 0 // 2 0 0 0 0 // int i = 0; for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 4; j++) { printf("%d ", arr[i][j]); } printf("/n"); } return 0;}
举例:(我们先打印出数组中各元素的地址寻找规律)(int arr [3][4])
#include#define _CRT_SECURE_NO_WARNINGSint main(){ int arr[3][4]; int i = 0; for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 4; j++) { printf("arr[%d][%d]=%p/n ",i,j, &arr[i][j]); } } return 0;}
结果为:
我们也不难观察出其相邻元素地址之间都相差为4,为整型元素4个字节的大小。
实际二维数组在储存时变为如图形式连续存放
以上便是关于数组的内容了,喜欢可点个赞或收藏哦!
谢谢浏览!(如有问题,请各位大神即使指出,我会及时纠正!)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/125653.html
摘要:官网优惠码前三个月优惠促销套餐以下原价购买请使用优惠码套餐内存硬盘带宽流量防御价格购买月点此直达月点此直达月点此直达月点此直达月点此直达月点此直达月点此直达月点此直达月点此直达月点此直达月点此直达月点此直达月点此直达 官网:https://hostvenom.com 优惠码: BF2021 前三个月20%优惠 促销套餐: 以下原价购买请使用优惠码 ...
摘要:语言中使用斜杠来表示一个字符串的结束。注意事项由于被替换,如果字符串末尾有,换行会出现两次。函数的原型成功返回失败返回将的字符串录入到文件指针中。 前言: 考虑到之前在专栏中讲字符串的时候有些知识点没有详细地讲解,所以本篇是对字符串相关的知识点的补充篇!例如 %s 输出左对齐右对齐,限制...
摘要:如果我们要将的地址保存到中,我们需要我们给指针变量相应的类型。类型的指针是为了存放类型变量的地址这里可以看到,指针的定义方式是类型名指针变量名。如下最后本文介绍的是指针的基础知识,往后还会继续深入讲解指 ...
阅读 3664·2023-01-11 11:02
阅读 4206·2023-01-11 11:02
阅读 3004·2023-01-11 11:02
阅读 5145·2023-01-11 11:02
阅读 4699·2023-01-11 11:02
阅读 5483·2023-01-11 11:02
阅读 5234·2023-01-11 11:02
阅读 3857·2023-01-11 11:02