C语言基础知识学习(数组)
来源:互联网 发布:德州力拓软件 编辑:程序博客网 时间:2024/05/20 23:33
C语言基础知识学习之数组
首先,数组是同种类型元素的集合。
一、一维数组
1.一维数组定义
int a[10];
这样我们便定义了一个数组a,它分配10个int类型空间。
2.数组的初始化
我们可以在定义一个数组的同时对它进行初始化操作,例如:
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
我们也可以只对数组的部分元素进行初始化操作,例如:
int a[10] = {1, 2, 3, 4, 5};
这里我们只对数组的前5个元素做了初始化操作,剩下其它元素的值是未知的。
如果我们对数组的所有元素都进行了初始化操作,那么我们甚至可以省略数组长度不写,编译器可以根据初始化数组元素的个数自动计算出数组的长度,但是写上总是好的,这样也便于其他人阅读和维护。
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
3. 数组元素的访问
访问数组中的元素可以采用数组名加下标的方式,下标是从0开始,c并不检查数组下标是否越界,所以在访问数组中的元素时需要注意,需要对数组下标做判断,防止访问数组越界。
int a[10];
int i;
for (i = 0; i < 10; i++)
{
a[i] = i + 1;
}
二、二维数组
1.二维数组定义
int a[6][10];
这样我们便定义了一个二维数组,这个数组是一个包含60个元素的矩阵,有6行10列。如何去看待一个二维数组,可以这样去看,先将a看成一个一维的数组,它有6个元素,但是它的每个元素又是一个包含10个元素的数组。
2.二维数组的初始化
同一维数组一样,可以对数组的所有元素进行初始化同样也可以只对数组的部分元素进行初始化。
3. 数组元素的访问
还是数组名加下标的方式,不过下标有两个下标,一个是行下标,另一个是列下标,其它同一维数组没有什么两样。
下面是我对于二维数组程序的一些实践:
例一:二维数组中各个表现形式的含义
#include<stdio.h>#include<string.h>int main(){int a[3][3] ={{1,2,3}, {4,5,6}, {7,8,9}};printf("%0x %0x %0x\n",a,a+1,a+2); //a+i 访问某(下)一行的地址 printf("%0x %0x %0x\n",a[0],a[1],a[2]);printf("%0x %0x %0x\n",a[0]+0,a[0]+1,a[0]+2); //第几行的第几列 printf("%d %d %d\n",*(a[0]+0),*(a[0]+1),*(a[0]+2));//取出第一行的三个数字中的内容return 0; }
终端显示结果:
61fedc 61fee8 61fef4
61fedc 61fee0 61fee4
1 2 3
Process exited normally.
Press any key to continue . . .
例二:在二维数组中取出数组各个元数的三种表示方法
#include<stdio.h>int main(){int a[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}, };int i,j; for(i = 0;i < 3;i++){ for(j = 0;j < 3;j++) //取出数组各个元数的三种表示方法 {//printf("%d\t",*(*(a+i)+j));//printf("%d\t",*(a[i]+j));printf("%d\t",a[i][j]); }printf("\n"); } return 0;}
终端显示结果:
4 5 6
7 8 9
Process exited normally.
Press any key to continue . . .
分析:由此上述程序可知,在二维数组中引用某个数组的方式共有三种:1.printf("%d\t",*(*(a+i)+j)); 2.printf("%d\t",*(a[i]+j));
3.printf("%d\t",a[i][j]);
- C语言基础知识学习(数组)
- C语言基础知识学习(数组)
- C语言数组基础知识
- C语言基础知识学习系列(一)
- C语言基础知识学习(一)
- C语言基础知识学习(二)
- C语言基础知识学习(三)
- C语言基础知识学习(一)
- C语言基础知识学习(二)
- C语言基础知识学习(三)
- C语言基础知识学习(函数)
- C语言基础知识之(十三):指针、指针和数组
- C语言基础知识学习记录
- C语言数组学习
- C语言学习-数组
- C语言数组学习
- C语言基础知识之(六):数组-----数组类型、定义数组、读取数组、排序数组、字符串数组函数
- 【C/C++学习】C语言基础知识积累
- 写一个函数返回参数二进制中1的个数
- 解决 ”Event filter with query "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstan“
- PL/SQL
- HDU 5970 最大公约数(找规律)
- Android View框架的measure机制
- C语言基础知识学习(数组)
- MySQL与eclipse建立连接
- Codeforces868B Race Against Time
- 一对多双向关联 、 多对一
- ios-collectionView?.deleteItems(at: [indexPath])造成的错误
- (M)Dynamic Programming: 474. Ones and Zeroes
- SylixOS 系统TICK实现
- js与jquery知识点总结(1)
- Plant CodeForces