- 相关推荐
C语言-15:多维数组与指针
C语言中指针与数组的关系密不可分,同时C语言规定多维数组名也是一个指针,例如二维数组a[3][5],a[3]便是一个指针。那这又有怎样的应用呢?
C语言-15:多维数组与指针
C-Free
例:
1、打开C-Free,新建文件。
2
输入以下内容:
#include
main()
{
char stu[4][4][10];
int i,j;
printf("请输入4个项目 ");
for(j=0;j<4;j++){
printf("项目%d:",j+1);
scanf("%s",stu[0][j]);
}
printf("请输入3个%s ",stu[0][0]);
for(j=1;j<4;j++){
printf("第%d个%s:",j,stu[0][0]);
scanf("%s",stu[j][0]);
}
for(i=1;i<4;i++)
for(j=1;j<4;j++){
printf("请输入%s的%s:",stu[i][0],stu[0][j]);
scanf("%s",stu[i][j]);
}
printf("情况如下: ");
for(i=0;i<4;i++){
for(j=0;j<4;j++)printf(" %s",stu[i][j]);
printf(" ");
}
}
3
运行结果如图:
说明:
char stu[4][4][10];这里定义了一个三维的字符数组总共有4x4x10个元素,但是例中,最后一维即[10]是用来储存字符串的,因此一共有4x4个项目。
1【C语言-12】多个数据的统一化处理(数组)1【C语言-13】字符数组
在开始便提到过,对于二维数组a[3][5],a[3]是一个指针,因此stu[0][j]也是一个指针。
0【C语言-14】数据的门牌号——指针
我们还记得scanf函数里有一个&,这个&便是取地址的意识,故在scanf("%s",&word);中&word是个地址,因此当后面的变量本身就是一个指针时,便不需要加&了,如例中:scanf("%s",stu[0][j]); 便没有加&。
注意:在数组中,字符串是不可以存储到一个变量中的,字符串始终是以数组的形式储存的,如以前提到过的
char word[10];
scanf("%s",&word); //见《【C语言-02】向系统输入内容文字(字符串)》
这个word其实就是一个数组。
0【C语言-02】向系统输入内容文字(字符串)
因此像例中一样,要输出一个二维的带字符串的项目,必须定义3维数组,如图:
【C语言-15:多维数组与指针】相关文章:
如何使用C语言数组指针09-14
C语言中指针与数组的区别10-09
c语言多维数组地址的表示方法07-31
C语言指针和数组基础知识10-26
C语言指针的概念08-20
什么是C语言数组10-03
C语言数组教程08-31
C语言指针函数和函数指针详解09-29
C语言的指针类型详解05-21
如何理解C语言指针05-19