一维数组和二维数组小结
一.一维数组的建立与定义:
在建立数组时,必须定义数组的类型与大小。如下
int nums [10];
数组的定义:
int nums [6] = {4,5,6,7,8,9};
int nums [] = {4,5,6,7,8,9};//这里的数组大小不必写
int nums [10];//建立一个空的数组
char num1 [3] = {'a','b','c'};//字符型数组,按照ascll码存放
char num1 [3] = {'a',98,'c'};//按照ascll 98 对应小写字母b
错误的定义:
char num2 [3] = {'a','b','c','d'};//超出数组长度,最一位舍弃
二.一维数组的实际应用
1、
#include<stdio.h>
int main()
{
char num [] = { 'a', 'b', 'c' };
char num2 [3] = "abc";
char *p = "a"; //把a的地址放进了p里面
return 0;
}
2、
#include<stdio.h>
int main()
{
int num[9] = {1,2,3,4,5,6,7,8,9};
int i = 0;
for (i = 0; i < 9; i++) //这里i不可以为10,不可以越界访问
{
printf("%d",num[i]);
}
return 0;
}
数组是通过使用下标进行访问的,数组下标是从0开始。
三.一维数组的指针访问
char a[] = {0,1,2};
char *p = a;
int i;
for(i =0; i < 3; i++)
{
printf("a[%d] = %d\n", i, *(p+i));
//注意此处可以写成 *(a + i) 或者写成 *(p ++),但不能写成 *( a ++ )
输出结果:
a[0] = 0;
a[1] = 1;
a[2] = 2;
a[3] = 3;
从输出结果可以看出,我们定义了一个指针,他指向数组a,通过指针访问数组。
四.二维数组的建立与定义:
正确的:
int arr[3][4] = { 1, 2, 3, 4, 5, 6 };
int arr[][4] = {{1, 2},{3, 4, 5},{6}};
错误的:
arr[3][] = {{1, 2},{3, 4, 5},{6}};
调试窗口
名称 值
1.
[0] 1
[1] 2
[2] 3
[3] 4
2.
[0] 5
[1] 6
[2] 0
[3] 0
通过调试窗口可以看出一行有四个元素,总共有三行,当后边元素没有初始化的时候,全默认为0。
五.二维数组的使用案例
int main()
{
int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};
int i,j,sum=0,average,v[3];
for(i=0;i<3;i++) //表示科目
{
for(j=0;j<5;j++) //表示学生
{
sum+=a[j][i];
}
v[i]=sum/5;
sum=0;
}
average=(v[0]+v[1]+v[2])/3;
printf("math:%d\nc language:%d\ndFoxpro:%d\n",v[0],v[1],v[2]);
printf("total:%d\n",average);
}
六.二维数组的指针访问
int main()
{
指针与二维数组int sum[3][5] = { 0 };
int *p = &sum[0][0];
int i = 0;
int j = 0;
for (i = 0; i < 15; i++)
{
*(p + i) = i + 1;
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d ", sum[i][j]);
}
}
return 0;
}
二位数组与其一维数组同样是通过指针进行访问的。
老九学堂会员社出品
作者:杭州_阿斌
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论