C语言 数组

定义数组

数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。

datatype arrayName[size];

int arr[10]={1,2,4,5};# 后面5个元素值为0

声明数组会在内存空间中开辟一个连续的空间

# include <stdio.h>//引用函数库
# include <stdlib.h>
void main(){
	int a[5] = {1,2,3,4,5};
	printf("%d",sizeof(a)); // 打印数组地址,sizeof(a)返回的是a所占的字节数
	printf("\n%d",sizeof(a)/sizeof(int));//打印数组个数,sizeof(int)是返回int所占字节数。
	printf("\n%x",a);//打印a的内存地址,%x是16位
	for (int i =0;i <5;i++){//打印每一个元素的内存地址
		printf("\na[%d]=%d a[%d]=%x", i, a[i],i,&a[i]);//&a[i]指的是a[i]的内存地址,而不是a[i]的值。
	}
}
输出结果:
20//a的字节大小
5//a的元素个数
e4c46470//a的内存地址
a[0]=1 a[0]=e4c46470//第一个元素的地址
a[1]=2 a[1]=e4c46474//第二个元素的地址
a[2]=3 a[2]=e4c46478
a[3]=4 a[3]=e4c4647c
a[4]=5 a[4]=e4c46480

二维数组

初始化

1,循环初始化

# include <stdio.h>//引用函数库
# include <stdlib.h>
void main(){
	int num[3][3];
	for (int i=0;i <3; i++){
		for (int j = 0; j<3;j++){
			num[i][j] = i*3 +j +1;
			printf("%-20d",num[i][j]);
		}
		printf("\n");
	}
}
1                   2                   3                   
4                   5                   6                   
7                   8                   9    

2,直接初始化

void main(){
	int num[3][3]={1,2,3,4,5,6,7,8,9};
}

3,按列初始化

void main(){
	int num[3][3]={{1,2,3},{4,5,6},{7,8,9}};
}

二维数组内存地址

# include <stdio.h>//引用函数库
# include <stdlib.h>
void main(){
int num[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for (int i=0;i<3;i++){
for (int j=0;j<3;j++){
printf("num[%d][%d]_%x  ",i,j,&num[i][j]);
}
printf("\n");
}
for (int i=0;i<3;i++){
printf("\nnum[%d]_%x ",i,&num[i]);
}
printf("\n");
printf("\nnum_%x",&num);
}
//数组的排序方式是先按行从左到右,再按列从上到下,依次排列
num[0][0]_87016e00  num[0][1]_87016e04  num[0][2]_87016e08  
num[1][0]_87016e0c  num[1][1]_87016e10  num[1][2]_87016e14  
num[2][0]_87016e18  num[2][1]_87016e1c  num[2][2]_87016e20  
//没一行的地址是该行的起始位置地址
num[0]_87016e00 
num[1]_87016e0c 
num[2]_87016e18 
//数组地址,是第一个元素的地址
num_87016e00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值