C语言第六讲,数组
C语言第六讲,数组
一丶什么是数组
数组,就是一整块的连续内存空间.
且类型都是一样的.大小一样
比如:
1.1数组元素的访问
我们要访问数组,例如上面,我们访问元算2,元素3等等怎么访问..
比如有一个数组为:
int Arry[3] = {1,2,3}; //数组定义初始化. Arry[0] = 1; Arry[1] = 2; //数组的访问 ......
利用下标来进行访问.
利用程序来进行访问
int Ary[10] = { 0 }; for (int i = 0; i < 10; i++) { printf("%d\r\n",i); }
动态的大小识别.
int Ary[10] = { 0 }; for (int i = 0; i < sizeof(Ary)/sizeof(Ary[0]); i++) { printf("%d\r\n",i); }
这里用到了一个关键字,Sizeof, sizeof关键字是求大小的关键字. 例如我们求数组的总大小. 然后 利用总大小 除以数组元素个数的大小. 就得出来了数组的个数.
1.2一维数组的声明
在C语言中,或者C++语言中,我们要声明数组. 不用考虑在哪里开辟,开辟多大的问题,只需要你给我一个大小.我编译器自动的来进行开辟内存空间供你使用.
类型 数组名[数组元素的个数] 例如: int Ary[3]; //定义一个Ary的数组,有3个元素.
注意,声明的时候是个数.也就是说数组有3个元素. 但是访问的时候是下表.从0开始访问
例如:
ary[0] = 1; ary[1] = 2; ary[2] = 3; 总共有三个.
声明的时候则是告诉编译器, 我声明的类型是 int类型,数组名字数Ary,个数是3个. 那么这个数组所占的内存空间则是 3 * 4 = 12个字节大小.
公式计算:
3(数组元素个数) * 类型 = 内存空间所占大小.
1.3数组应该注意的问题.
在C语言中,数组的声明不支持动态声明.
什么意思?
也就是说,你需要给定我个数.我来进行申请.但是你不能把这个个数给一个变量保存.让我跟随变量来申请.
例如:
int nCount = 10; int Ary[nCount]; //错误的
数组的定义可以和普通成员变量的定义放在一起.
例如:
int A, ary[5],b;
二丶数组初始化
上面我们虽然定义了数组.但是并没有仔细讲解数组的初始化
数组的初始化常用的有三种.
第一种, 大括号初始化.
int Ary[3] = { 1, 2 ,3}; //数组中的元素1,元素2,元素三分别初始化为了1,2,3
第二种.全部初始化.
int Ary[3] = {0}; //数组的每个元素全部初始化为了0
第三种,不确定个数的初始化.
int Ary[] = { 1, 2, 3} ;//有的时候你并不知道你的数组有多大. 但是又不用动态的申请空间. 所以这样写会默认有3个元素.
三丶二维数组和高维数组
有的时候一维数组并不能满足我们的需求.
这个是否就需要更高维的数组了.
例如:
int Ary[2][2]; 定义二维数组
这样则声明了一个二维数组. 代表我们申请了 2行 2列的数组. 大小是 2*2的矩阵.
这几个元素分别是:
Ary[0][0] Ary[0][1] Ary[1][0] Ary[1][1]
二维数组的定义初始化.
int nNum[2][2] = {{0,1},{2,3}}; 使用两个括号即可.
二维数组对部分元素进行初始化.
int nNum[2][2] = {{1},{0}};
二维数组的访问
二维数组本质是一维数组.但是为了理解.所以说成是二维数组.
我们利用程序来对其进行访问.
二维数组初始化 int Ary[3][4] = {0}; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { Ary[i][j] = i + j; //重要语句. i是行,j是列 } }
二维数组输出 for (int i = 0; i < 3; i++ ) { for (int j = 0; j < 4; j++) { printf(" %d", Ary[i][j]); } puts("\r\n"); }
输出结果.
高维数组则一样,不过一般用不到高维数组.
坚持两字,简单,轻便,但是真正的执行起来确实需要很长很长时间.当你把坚持两字当做你要走的路,那么你总会成功. 想学习,有问题请加群.群号:725864912(收费)群名称: 逆向学习小分队 群里有大量学习资源. 以及定期直播答疑.有一个良好的学习氛围. 涉及到外挂反外挂病毒 司法取证加解密 驱动过保护 VT 等技术,期待你的进入。
详情请点击链接查看置顶博客 https://www.cnblogs.com/iBinary/p/7572603.html
本文来自博客园,作者:iBinary,未经允许禁止转载 转载前可联系本人.对于爬虫人员来说如果发现保留起诉权力.https://www.cnblogs.com/iBinary/p/8472606.html
欢迎大家关注我的微信公众号.不定期的更新文章.更新技术. 关注公众号后请大家养成 不白嫖的习惯.欢迎大家赞赏. 也希望在看完公众号文章之后 不忘 点击 收藏 转发 以及点击在看功能. QQ群: