注意:数组类型是int[常量],数组元素类型才是int
c99标准之前数组的大小只能是常量指定,不能使用变量 c99之后为什么就使用变量呢?---变长数组 变长数组:数组大小可以根据输入的变量决定其大小的数组--如下 int n; scanf("%d",&n); int array[n];
//%p-打印地址
#include<stdio.h>
int main()
{
int num1[10] = { 1,2,3,4,5,6,7,8,9,10 };
int i = 0;
for (i = 1; i < 10; i++)//产生0-9的下标
{
printf("&arr[%d]=%p\n",i,& num1[i]);
}
return 0;
}
结论:1.数组在内存中是连续存放的
2.随着下标的增长,地址是由低到高变化的
#include<stdio.h>
int main()
{
int num1[10] = { 1,2,3,4,5,6,7,8,9,10 };
int i = 0;
//输入
for (i = 0; i <= 9; i++)//产生0-9的下标
{
scanf("%d", &num1[i]);
}
//输出
for (i = 1; i < 10; i++)//产生0-9的下标
{
printf("%d", num1[i]);
}
return 0;
}
数组的输入:输入的是数组元素,输出的的也是元素
❗注意:计算数组大小如果是类型括号不可以省略
例如:
#include<stdio.h>
int main()
{
int a = 10;
//size_t
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(a));
printf("%d\n", sizeof a);
return 0;
}
sizeof 的计算结果是size_t类型的
size_t 是无符号整型
语法: type arr_name[常量1][常量2]; eg: int arr[3][5];---表示的是三行五列int类型的二维数组,arr是数组名可以自己取 如何进行初始化: 元素按照行的个数进行排放,若有多则换行,若初始化不完全则会补0 如何按照行进行初始化: 因为二维数组的元素是一维数组所以只需要给里面元素加一个{}进行划分即可进行按行输出,如下:
利用下标结合for循环进行遍历,数组的行和列都是从0开始的
#include<stdio.h>
int main()
{
int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6} ,{3,4,5,6,7} };
//printf("%d\n",arr[1][3]);//[]下标引用操作符
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
printf("%d", arr[i][j]);
}
printf("\n");
}
return 0;
}
运行结果:
#include<stdio.h>
int main()
{
int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6} ,{3,4,5,6,7} };
//printf("%d\n",arr[1][3]);//[]下标引用操作符
//输入
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
scanf("%d", &arr[i][j]);
}
}
//输出
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
printf("%d", arr[i][j]);
}
printf("\n");
}
return 0;
}
输入数据后的运行结果:
#include<stdio.h>
int main()
{
int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6} ,{3,4,5,6,7} };
//printf("%d\n",arr[1][3]);//[]下标引用操作符
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
printf("arr[%d][%d]=%p\n",i,j, &arr[i][j]);
}
printf("\n");
}
return 0;
}
运行结果:
arr[0][j] arr[1][j] arr[2][j]
由上运行结果可知,二维数组在内存中也是连续存放的.
arr[0],arr[1],arr[2]可以看成是二维数组的数组名
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有