作者在 2011-08-23 11:08:44 发布以下内容
/*
时间:2011年8月23日10:58:04
目的:掌握数组的用法
*/
# include <stdio.h>
int main(void)
{
//数组的定义
int i;
int a[5]; //定义一个数组,[]中的5表示数组中元素的个数,这5个元素分别是a[0],a[1],a[2],a[3],a[4]
printf("%d\n",a[5]); //想输出一个数组的所有元素,这样写是错误的,只有在定义时[]中的5才表示元素个数,除此以外只表示下标
for(i=0; i<5; ++i) //输出一个数组中的所有元素需要使用循环
printf("%d ",a[i]); //由于之前只做了定义没有初始化,所以数组中的元素都是垃圾值
printf("\n");
//数组的初始化
int b[5] = {1,2,3,4,5}; //对数组进行完全初始化
for (i=0; i<5; ++i)
printf("%d ",b[i]); //输出1 2 3 4 5
printf("\n");
int c[5] = {1,2,3}; //对数组进行不完全初始化,没被初始化的元素自动变为0
for (i=0; i<5; ++i)
printf("%d ",c[i]); //输出1 2 3 0 0
printf("\n");
int d[5] = {0}; //作为不完全初始化的特例,这样的初始化相当于对数组里的所有元素清零
for (i=0; i<5; ++i)
printf("%d ",d[i]); //输出0 0 0 0 0
printf("\n");
/* int a[5];
a[5]={1,2,3,4,5}; //这是一种常见的错误写法,原因之前说过,这里a[5]只表示一个下标为5的元素,而这个元素甚至并不在定义的数组里
*/
//二维数组
// int f[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; //定义一个二维数组,相当于3行4列共12个元素
int f[3][4] = { //这样写更清晰,包含的元素是:
{1, 2, 3, 4 }, // a[0][0] a[0][1] a[0][2] a[0][3]
{5, 6, 7, 8 }, // a[1][0] a[1][1] a[1][2] a[1][3]
{9, 10, 11, 12} // a[2][0] a[2][1] a[2][2] a[2][3]
};
int j, k;
for(j=0; j<3; ++j) //输出二维数组需要两个for循环嵌套
{
for(k=0; k<4; ++k)
printf("%-5d ",f[j][k]); //%-5d是个对齐的小技巧,-表示左对齐,5表示每个元素占5个光标位置(不重要,将来有更好的控制方式)
printf("\n");
}
//多维数组
//事实上不存在多维数组,因为内存是线性一维的,n维数组可以看做每个元素是n-1维数组的一维数组
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
-858993460
-858993460 -858993460 -858993460 -858993460 -858993460
1 2 3 4 5
1 2 3 0 0
0 0 0 0 0
1 2 3 4
5 6 7 8
9 10 11 12
Press any key to continue
————————————
*/
时间:2011年8月23日10:58:04
目的:掌握数组的用法
*/
# include <stdio.h>
int main(void)
{
//数组的定义
int i;
int a[5]; //定义一个数组,[]中的5表示数组中元素的个数,这5个元素分别是a[0],a[1],a[2],a[3],a[4]
printf("%d\n",a[5]); //想输出一个数组的所有元素,这样写是错误的,只有在定义时[]中的5才表示元素个数,除此以外只表示下标
for(i=0; i<5; ++i) //输出一个数组中的所有元素需要使用循环
printf("%d ",a[i]); //由于之前只做了定义没有初始化,所以数组中的元素都是垃圾值
printf("\n");
//数组的初始化
int b[5] = {1,2,3,4,5}; //对数组进行完全初始化
for (i=0; i<5; ++i)
printf("%d ",b[i]); //输出1 2 3 4 5
printf("\n");
int c[5] = {1,2,3}; //对数组进行不完全初始化,没被初始化的元素自动变为0
for (i=0; i<5; ++i)
printf("%d ",c[i]); //输出1 2 3 0 0
printf("\n");
int d[5] = {0}; //作为不完全初始化的特例,这样的初始化相当于对数组里的所有元素清零
for (i=0; i<5; ++i)
printf("%d ",d[i]); //输出0 0 0 0 0
printf("\n");
/* int a[5];
a[5]={1,2,3,4,5}; //这是一种常见的错误写法,原因之前说过,这里a[5]只表示一个下标为5的元素,而这个元素甚至并不在定义的数组里
*/
//二维数组
// int f[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; //定义一个二维数组,相当于3行4列共12个元素
int f[3][4] = { //这样写更清晰,包含的元素是:
{1, 2, 3, 4 }, // a[0][0] a[0][1] a[0][2] a[0][3]
{5, 6, 7, 8 }, // a[1][0] a[1][1] a[1][2] a[1][3]
{9, 10, 11, 12} // a[2][0] a[2][1] a[2][2] a[2][3]
};
int j, k;
for(j=0; j<3; ++j) //输出二维数组需要两个for循环嵌套
{
for(k=0; k<4; ++k)
printf("%-5d ",f[j][k]); //%-5d是个对齐的小技巧,-表示左对齐,5表示每个元素占5个光标位置(不重要,将来有更好的控制方式)
printf("\n");
}
//多维数组
//事实上不存在多维数组,因为内存是线性一维的,n维数组可以看做每个元素是n-1维数组的一维数组
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
-858993460
-858993460 -858993460 -858993460 -858993460 -858993460
1 2 3 4 5
1 2 3 0 0
0 0 0 0 0
1 2 3 4
5 6 7 8
9 10 11 12
Press any key to continue
————————————
*/