-
2021-05-21 03:44:25
上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。
二维数组的定义
二维数组定义的一般形式是:
dataType arrayName[length1][length2];
其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。例如:
int a[3][4];
定义了一个3行4列的数组,共有3×4=12个元素,数组名为a,即:
a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]
在二维数组中,要定位一个元素,必须给出一维下标和二维下标,就像在一个平面中确定一个点,要知道x坐标和y坐标。例如,a[3][4] 表示a数组第3行第4列的元素。
二维数组在概念上是二维的,但在内存中地址是连续的,也就是说各个元素是相互挨着的。那么,如何在线性内存中存放二维数组呢?有两种方式:一种是按行排列, 即放完一行之后再放入第二行。另一种是按列排列, 即放完一列之后再放入第二列。
在C语言中,二维数组是按行排列的。也就是先存放a[0]行,再存放a[1]行,最后存放a[2]行;每行中的四个元素也是依次存放。数组a为int类型,每个元素占用4个字节,整个数组共占用4×(3×4)=48个字节。
【示例】一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。
--
Math
C
English
张
80
75
92
王
61
65
71
李
59
63
70
赵
85
87
90
周
76
77
85
可设一个二维数组a[5][3]存放五个人三门课的成绩。再设一个一维数组v[3]存放所求得各分科平均成绩,设变量average 为全组各科总平均成绩。编程如下:
#include
int main(){
int i, j; //二维数组下标
int sum=0; //当前科目的总成绩
int average; //总平均分
int v[3]; //各科平均分
int a[5][3]; //用来保存每个同学各科成绩的二维数组
printf("Input score:\n");
for(i=0; i<3; i++){
for(j=0; j<5; j++){
scanf("%d", &a[j][i]); //输入每个同学的各科成绩
sum+=a[j][i]; //计算当前科目的总成绩
}
v[i]=sum/5; // 当前科目的平均分
sum=0;
}
average =(v[0]+v[1]+v[2])/3;
printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);
printf("Total:%d\n", average);
return 0;
}
运行结果:
Input score:
80 61 59 85 76 75 65 63 87 77 92 71 70 90 85↙
Math: 72
C Languag: 73
English: 81
Total:75
程序使用了一个嵌套循环。在内循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内循环后再把该累加成绩除以5送入v[i]之中,这就是该门课程的平均成绩。外循环共循环三次,分别求出三门课各自的平均成绩并存放在v数组之中。退出外循环之后,把v[0]、v[1]、v[2]相加除以3即得到各科总平均成绩。最后按题意输出各个成绩。
二维数组的初始化
二维数组的初始化可以按行分段赋值,也可按行连续赋值。
例如对数组a[5][3],按行分段赋值可写为:
int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
按行连续赋值可写为:
int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};
这两种赋初值的结果是完全相同的。
【示例】求各科平均分和总成绩平均分。
#include
int main(){
int i, j; //二维数组下标
int sum=0; //当前科目的总成绩
int average; //总平均分
int v[3]; //各科平均分
int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
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 Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);
printf("Total:%d\n", average);
return 0;
}
运行结果:
Math: 72
C Languag: 73
English: 81
Total:75
对于二维数组初始化赋值还有以下说明
1) 可以只对部分元素赋初值,未赋初值的元素自动取0值。例如:
int a[3][3]={{1},{2},{3}};
是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为:
1 0 0
2 0 0
3 0 0
int a [3][3]={{0,1},{0,0,2},{3}};
赋值后的元素值为:
0 1 0
0 0 2
3 0 0
2) 如对全部元素赋初值,则第一维的长度可以不给出。例如:
int a[3][3]={1,2,3,4,5,6,7,8,9};
可以写为:
int a[][3]={1,2,3,4,5,6,7,8,9};
3) 二维数组可以看作是由一维数组嵌套而成的,把一维数组的每个元素看作一个数组,就组成了二维数组。当然,前提是各元素类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组,C语言允许这种分解。
如二维数组a[3][4],可分解为三个一维数组,其数组名分别为:a[0]、a[1]、a[2]。
对这三个一维数组不需另作说明即可使用。这三个一维数组都有4个元素,例如:一维数组a[0]的元素为a[0][0], a[0][1], a[0][2], a[0][3]。必须强调的是,a[0], a[1], a[2]不能当作下标变量使用,它们是数组名,不是一个单纯的下标变量。
更多相关内容 -
C语言二维数组中的查找的实例
2020-08-29 23:19:05主要介绍了C语言二维数组中的查找的实例的相关资料,需要的朋友可以参考下 -
C语言中二维数组作为函数参数来传递的三种方法
2020-12-25 23:03:16c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度。 例如: #include void func(int n, char str[ ][5] ) { int i; for(i = 0; i < n; i++) printf("/nstr... -
c语言二维数组如何初始化为0
2021-05-19 18:57:15描述c语言二维数组如何初始化1 有两种方法(1)在定义时可以直接赋值来初始化(2)在定义后可以为其元素一个个来赋值2 示例1234567891011121314151617181920212223242526272829#include《stdio.h》void display(int arr...描述
c语言二维数组如何初始化
1 有两种方法
(1)在定义时可以直接赋值来初始化
(2)在定义后可以为其元素一个个来赋值
2 示例
1234567891011121314151617181920212223242526272829#include《stdio.h》
void display(int arr[2][3], int row, int col){
for (int i = 0; i 《 row; i++){
for (int j = 0; j 《 col; j++){
printf(“%d ”, arr[i][j]);
}
puts(“”);
}
puts(“”);
}
int main(){
//方法(1)
int arr1[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
//方法(2)
int arr2[2][3];
int num = 1;
for (int i = 0; i 《 2; i++){
for (int j = 0; j 《 3; j++){
arr2[i][j] = num++;
}
}
display(arr1, 2, 3);
display(arr2, 2, 3);
getchar();
return 0;
}
3 运行结果
由结果可知,两种方式达到的效果是一样的
4 扩展
由于C语言中数组中的元素的地址是连续的,所以下面的写法也是可以的,运行效果同上
12345678910111213141516171819202122232425262728#include《stdio.h》
void display(int arr[2][3], int row, int col){
for (int i = 0; i 《 row*col; i++){
for (int j = 0; j 《 col; j++){
printf(“%d ”, arr[i][j]);
}
puts(“”);
}
puts(“”);
}
int main(){
//方法(1)
int arr1[2][3] = { 1, 2, 3, 4, 5, 6 };
//方法(2)
int arr2[2][3];
int num = 1;
int *p = *arr2;//指向数组的第一个元素
for (int i = 0; i 《 2 * 3; i++){
*p++ = num++;
}
display(arr1, 2, 3);
display(arr2, 2, 3);
getchar();
return 0;
}
c二维数组初始化为0的2种实现方式
1 #include 《stdio.h》
2 #include 《stdlib.h》
3 #include 《string.h》
4 int main()
5 {
6 //char a[2][4] ;
7 char a[2][4] = {0} ;
8 char *b =a[0];
9 for (int i=0; i《8; i++)
10 {
11 printf(“%d ”, *(b+i));
12 }
13 printf(“\n------------\n”);
14 //memset(a,0x0, sizeof(a));
15
16 for (int i=0; i《8; i++)
17 {
//printf(“%d”, b[i]);
//printf(“%d”, a[i]); //这个是错的输出结果,原因是这个时候a的类型是二维指针,编译器的解析不是我们想象的那个样子!
//它输出的是那一行的数据,
18 printf(“%d ”, *(b+i));
19 }
20 }
打开APP阅读更多精彩内容
点击阅读全文
-
C语言二维数组下三角、上三角螺旋赋值并打印
2022-03-13 11:36:43题目:将一个7*7(只能要求必须行和列相等的矩阵)的二维数组下三角部分以螺旋、依次+1的方式填满并输出(如下图所示) 方法:依旧设置四个变量Left、Right、Up、Down控制循环,不过只有三种模式,故只需要三个...题目:将一个7*7(只能要求必须行和列相等的矩阵)的二维数组下三角部分以螺旋、依次+1的方式填满并输出(如下图所示)
方法:依旧设置四个变量Left、Right、Up、Down控制循环,不过只有三种模式,故只需要三个for循环(红色线条、蓝色线条、绿色线条)即可解决。
代码如下:(需要注意的已在代码中用注释说明)
#include<stdio.h> void Print_Ar(int br[7][7],int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%3d", br[i][j]); } printf("\n"); } printf("\n"); } int main() { const int n = 7; int ar[n][n] = { 0 };//该代码只适用于n*n的二维数组下三角填充!! int Left = 0, Right = n - 1, Up = 0, Down = n - 1; int num = 1; while (Left <= Right && Up <= Down) { //需要填充三个不同部分,故需使用三个循环解决 for (int i = Up; i <= Down; i++) { ar[i][Left] = num++; } for (int i = Left + 1; i <= Right; i++) { ar[Down][i] = num++; } //切勿写成下列循环!!只有第一次填充是对角线ar[i][i]!! /*for (int i = Down - 1; i > Up; i--) { ar[i][i] = num++; }*/ for (int i = Down - 1, j = Right - 1; i > Up&& j > Left; i--, j--) { ar[i][j] = num++; } //不要忘记控制循环变量发生改变 Left++, Right -= 2, Up += 2, Down--;//通过观察后续循环发现的规律 } Print_Ar(ar, n); return 0; }
运行结果如下:
同理,上三角填充也很容易。如下图所示:
代码如下:
#include<stdio.h> void Print_Ar(int br[7][7], int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%3d", br[i][j]); } printf("\n"); } printf("\n"); } int main() { const int n = 7; int ar[n][n] = { 0 }; int left = 0, right = n - 1, up = 0, down = n - 1; int num = 1; while (left <= right && up <= down) { for (int i = left; i <= right; i++) { ar[up][i] = num++; } for (int i = up + 1; i <= down; i++) { ar[i][right] = num++; } for (int i = down - 1, j = right - 1; i > up && j > left; i--, j--) { ar[i][j] = num++; } up++, down -= 2, left += 2, right--; } Print_Ar(ar, n); return 0; }
运行结果如下:
-
C语言二维数组的使用
2020-02-23 10:43:55二维数组的定义 二维数组定义的一般形式是: dataType arrayName[length1][length2]; 其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。 我们可以将二维...二维数组的定义
二维数组定义的一般形式是:
dataType arrayName[length1][length2];
其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。
我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。例如:
int a[3][4];
定义了一个 3 行 4 列的二维数组,共有 3×4=12 个元素,数组名为 a,即:
a[0][0], a[0][1], a[0][2], a[0][3] a[1][0], a[1][1], a[1][2], a[1][3] a[2][0], a[2][1], a[2][2], a[2][3]
如果想表示第 2 行第 1 列的元素,应该写作
a[2][1]
也可以将二维数组看成一个坐标系,有 x 轴和 y 轴,要想在一个平面中确定一个点,必须同时知道 x 轴和 y 轴。
二维数组在概念上是二维的,但在内存中是连续存放的;换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。那么,如何在线性内存中存放二维数组呢?有两种方式:
一种是按行排列, 即放完一行之后再放入第二行; 另一种是按列排列, 即放完一列之后再放入第二列。
在C语言中,二维数组是按行排列的。也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行中的 4 个元素也是依次存放。数组 a 为 int 类型,每个元素占用 4 个字节,整个数组共占用 4×(3×4)=48 个字节。
你可以这样认为,二维数组是由多个长度相同的一维数组构成的。
示例 一个学习小组有 5 个人,每个人有 3 门课程的考试成绩,求该小组各科的平均分和总平均分。
我们可以定义一个二维数组 a[5][3] 存放 5 个人 3 门课的成绩,定义一个一维数组 v[3] 存放各科平均分,再定义一个变量 average 存放总平均分。最终编程如下:#include <stdio.h> int main(){ int i, j; //二维数组下标 int sum = 0; //当前科目的总成绩 int average; //总平均分 int v[3]; //各科平均分 int a[5][3]; //用来保存每个同学各科成绩的二维数组 printf("Input score:\n"); for(i=0; i<3; i++){ for(j=0; j<5; j++){ scanf("%d", &a[j][i]); //输入每个同学的各科成绩 sum += a[j][i]; //计算当前科目的总成绩 } v[i]=sum/5; // 当前科目的平均分 sum=0; } average = (v[0] + v[1] + v[2]) / 3; printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]); printf("Total: %d\n", average); return 0; }
运行结果:
Input score: 80 61 59 85 76 75 65 63 87 77 92 71 70 90 85↙ Math: 72 C Languag: 73 English: 81 Total: 75
程序使用了一个嵌套循环来读取所有学生所有科目的成绩。在内层循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内层循环(进入外层循环)后再把该累加成绩除以 5 送入 v[i] 中,这就是该门课程的平均分。外层循环共循环三次,分别求出三门课各自的平均成绩并存放在数组 v 中。所有循环结束后,把 v[0]、v[1]、v[2] 相加除以 3 就可以得到总平均分。
二维数组的初始化(赋值)
二维数组的初始化可以按行分段赋值,也可按行连续赋值。
例如,对于数组 a[5][3],按行分段赋值应该写作:
int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
按行连续赋值应该写作:
int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};
这两种赋初值的结果是完全相同的。
示例2和“示例1”类似,依然求各科的平均分和总平均分,不过本例要求在初始化数组的时候直接给出成绩。
#include <stdio.h> int main(){ int i, j; //二维数组下标 int sum = 0; //当前科目的总成绩 int average; //总平均分 int v[3]; //各科平均分 int a[5][3] = {{80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85}}; 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 Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]); printf("Total: %d\n", average); return 0; }
运行结果:
Math: 72 C Languag: 73 English: 81 Total: 75
对于二维数组的初始化还要注意以下几点:
1 . 可以只对部分元素赋值,未赋值的元素自动取“零”值。例如:int a[3][3] = {{1}, {2}, {3}};
是对每一行的第一列元素赋值,未赋值的元素的值为 0。赋值后各元素的值为:
1 0 0 2 0 0 3 0 0
再如:
int a[3][3] = {{0,1}, {0,0,2}, {3}};
赋值后各元素的值为:
0 1 0 0 0 2 3 0 0
2 . 如果对全部元素赋值,那么第一维的长度可以不给出。例如:
int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
可以写为:
int a[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
3 . 二维数组可以看作是由一维数组嵌套而成的;如果一个数组的每个元素又是一个数组,那么它就是二维数组。当然,前提是各个元素的类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。
例如,二维数组a[3][4]可分解为三个一维数组,它们的数组名分别为 a[0]、a[1]、a[2]。
这三个一维数组可以直接拿来使用。这三个一维数组都有 4 个元素,比如,一维数组 a[0] 的元素为 a[0][0]、a[0][1]、a[0][2]、a[0][3]。
扫一扫获取更多资讯哟!!!
-
C语言二维数组知识点介绍
2021-05-18 13:12:55C语言二维数组知识点介绍数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍... -
C语言二维数组超细讲解
2021-05-22 02:54:07在你绞尽脑汁的时候,二维数组(一维数组的大哥)像电视剧里救美的英雄一样显现在你的面前,初识数组的朋友们还等什么呢?让我们认识一下这位武功高强的大哥吧!1. 双下标变量先来认识一下双下标变量,聪明的你一定... -
C语言二维数组怎么写好
2021-05-21 02:42:02C语言二维数组怎么写好有同学在面对二维数组的时候,常常会犯浑。尤其是使用函数传参的时候,有老师讲到一维数组传参后就等价于一级指针,部分同学举一反三自学成才,想当然地认为二维数组传参后就等价于二级指针,... -
C语言 二维数组定义和使用 - C语言零基础入门教程
2021-08-22 15:13:10目录 一.二维数组简介 二.定义二维数组并初始化 1.定义二维数组 2.初始化二维数组 ...三.访问二维数组 ...而二维数组和一维数组类似,简单理解就是:二维数组由多个一维数组构成,语法如下: type arrayName -
c语言二维字符数组的输入输出
2021-10-28 23:08:00int n=3; int a[n][n]; for(int i=0;i;i++) for(int j=0;j;j++) scanf("%c",&a[i][j]); for(int i=0;i;i++) for(int j=0;... 这些代码不能正确的对二维数组进行输出跟输出 输入 asd asd asd 输出 asd asd -
C语言二维数组的定义和引用
2021-05-22 14:17:07C语言二维数组的定义和引用C语言二维数组的定义和引用7.1.1二维数组的定义前面介绍的数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维... -
C语言二维数组字符串的赋值
2021-05-19 09:07:13今天用到了二维数组作为参数传递的程序,通过网上搜索,针对自己遇到的问题做个整理。1、在被调用函数的形参数组定义可以省略第一维的大小,第二维不可省略,如下:void fun(int a[5][20]); //合法void fun(int a[]... -
c语言 二维数组输入m行元素
2017-12-03 11:28:10char a[100][100]; int m; scanf("%d",&m); while(m--) gets(a[m]); 为什么一个元素都输入不进去,新手求教 -
c.c语言二维数组运用(评分系统)
2020-05-27 15:41:50没午睡,越想越气,越气越写不出来,越写不出来就动歪点子(写完代码留着一堆bug照不出来,于是就放在那另写代码吧结果映出来,看似完成了,刚好我舍友c语言啥也不懂,真的糊弄的有点不好意思,还要麻烦他帮我日夜刷... -
C语言二维数组的定义、初始化、赋值
2021-05-20 16:28:20这种常规形式的数组一般使用不过二维,并且数组名很特殊,有跟指针以及地址有密不可分的关系,但是不一样,并且它使用数据的静态存储区。... //二维数组下标int sum = 0; //当前科目的总成绩int av... -
C语言利用二维数组输入输出字符串
2021-04-02 09:25:13#include<stdio.h> int main(){ char a[15][20]; int i; for(i=0;i<15;i++){ scanf("%s",&a[i][0]); } printf("%s ",&a[2][0]); printf("%s",&a[11][0]); } -
C语言二维数组实现杨辉三角
2022-01-23 20:00:19杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合 [2] 。--------来自百度 杨辉三角的实现 那么具体怎么实现呢? -
c语言二维数组练习
2021-11-10 16:05:25输入:输入数据包含多个测试实例,数据的第一行是一个整数n(0<n<=1000),表示气球个数,然后是n行输入数据,每行是其中一个气球的颜色,气球颜色是一个由小写字母构成的长度不超过15的串, N=0结束输入。 ... -
C语言二维数组作为参数的格式与变长数组处理
2021-05-20 11:52:00col:表示这个数组有多少列void function(int *a[col],int row);void function (int a[][col],int row);void fucntion(int a[row][col],introw);--------第一个参数row其实会被编译器忽略,因此与上一个方法其实是... -
c语言二维数组找最大值
2022-01-11 14:51:39#include<stdio.h> int main() { int a[3][4]= {18,24,23,84,56,66,45,7,5,9,38,43}; int row=0; int col=0; int max=a[0][0]; int i=0,j=0; for(i=0; i<3; i++) { ... if(a[i][j]& -
6.C语言 二维数组
2021-10-18 08:29:051.什么是二维数组? 就是数组中保存的元素都是一维数组,我们就称之为二维数组 2.二维数组的定义格式 元素类型 数组名称[一维数组的组数][一维数组中存储的元素个数] 一维数组的个数:代表二维数组中可以存储... -
C语言二维数组转化为一维数组
2019-11-08 12:13:50C语言二维数组转化为一维数组 #include <stdio.h> #include <stdlib.h> #define A 2 //行的长度 #define B 2 //列的长度 int main() { //定义一个二维数组 int array1[A][B]={1,2,3,4}; //定义一个一... -
c语言二维数组之杨辉三角
2021-11-08 15:24:43=10)存入到二维数组中,并输出。 请在下方粘贴代码和程序运行结果截图 输入及输出结果如图所示: #include <stdio.h> void main() { int a[10][10],i,j,n; while(scanf("%d",&n)!=EOF) { ... -
c语言二维数组为什么用puts输入要多1
2019-03-31 21:22:29#include #include #define M 5 #define N 10 int main() { char a[M][N]; int i,j; int m; scanf("%d",&m); for(i=0;i;i++) gets(a[i]);...为什么循环3次却只能输入2个字符串???? -
C语言 一维数组、二维数组的创初始化、使用和存储
2020-12-21 20:16:45数组 数组(Array)是在内存中连续存储的具有相同类型的一组数据的集合。 数组是一组相同类型元素的集合。*这些元素在内存中依次连续挨着存放。 数组中,若将有限个类型相同的变量的集合命名,那么这个名称为数组名... -
C语言二维数组
2021-05-18 13:12:48上节讲解的数组可以看作是一行连续的...本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayNa... -
C语言二维数组的地址问题
2020-09-05 10:06:11(注:图中输出a[0]+2是为测试数组的线性存储方式。) 测试代码如下: #include<stdio.h> int main(){ int a[3][2]; int i, j; for(i = 0; i < 3; i++){ for(j = 0; j < 2; j++){ printf(... -
C语言 二维数组相关 总行数和总列数、不定行数组
2019-07-05 11:36:15#include <stdio.h> #include <stdlib.h> int main(){ char str[][30] = {"zhangsan","lisi","wangwu"};... //定义行指针,即二维数组名 是一个数组指针、行指针 //行数 = sizeof(array)/siz...