定义一个二维数组有三行四列inta【3】【4】教材上说在这个二维数组中a【0】和*a相等为什么

如题所述

第1个回答  2013-06-28
我们把程序写全:
数组a[3][4], 有3行4列元素:
11 12 13 14
21 22 23 24
31 32 33 34
c语言,2维数组存放 为1字长蛇阵,数据依次为:
11,12,13,14,21,22,23,24,31,32,33,34
-----
#include<stdio.h>
#include<stdlib.h>
main(){
int a[3][4]={11,12,13,14,21,22,23,24,31,32,33,34};
int *p=&a[0][0]; // 声明 指针 int *p, 初始化,让它 指向 a[0][0] 的地址 &a[0][0]
printf("%d %d\n",*p,p[0]);
return 0;
}
打印 语句 里, *p 是 p 指向的那个地址里存放的数的数值。现在指向a[0][0], 所以打印出 11。
语句里 p[i] 是什么呢,是 地址 p + i * sizeof(int) 里存放的数的数值
i=0 , 就是 p[0] ,地址 p + i * sizeof(int) = 地址 p,与 前面 *p 数值 一样。
对指针熟悉了以后,你知道 p 指向 1字长蛇阵 的头,也就可以 把1字长蛇阵 看成是
一维数组p[], 下标i= 0 到 3*4-1.本回答被提问者采纳

定义一个二维数组有三行四列inta【3】【4】教材上说在这个二维数组中a...
数组a[3][4], 有3行4列元素:11 12 13 14 21 22 23 24 31 32 33 34 c语言,2维数组存放 为1字长蛇阵,数据依次为:11,12,13,14,21,22,23,24,31,32,33,34 --- include<stdio.h> include<stdlib.h> main(){ int a[3][4]={11,12,13,14,21,22,23,24,31,32,33,34}...

有如下二维数组定义:inta[3][4];可以把a[0]看做一个___维数组名。
【答案】:一位数组组名 解析:int a[3][4],表示的是三个一位数组,表示的是3行四列的表格,可以把每一行看成一个一位数组,这样就容易理解了。所以a[0]可以看成是第一行第一列的元素,即第一行的首地址,即为一个一维数组名。

c语言怎样定义一个3行4列的二维数组
int a[3][4];这样定义就行了 赋值可以这样:for(i=0;i<3;i++)for(j=0;j<4;j++)scanf(“%d”,&a[i][j]);示例:main(){ int a[3][4],i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf(“%d”,&a[i][j]);for(i=0;i<3;i++)for(j=0;j<...

定义3行4列的整型二维数组a的语句是什么??
int a[3][4];int 表示二维数组为整形;score[3][4] 表示二维数组为三行四列;即前一个括号里的数表示行数,第二个括号里的数表示列数;main(){ int a[3][4],i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf(“%d”,&a[i][j]);for(i=0;i<3;i++)for(j=0...

有如下的定义 int a[3][4]; int (*p)[4]=a; int
int (*p)[4];\/\/定义一个指针,指向由四个整形元素组成的对象 int a[3][4];\/\/定义一个二维数组,其中a与p都是相同的指针类型 p=a;\/\/p指向a的每一行,p+1指向a的下一行

C语言二维数组的定义和引用
二维数组定义的一般形式是:类型说明符 数组名[常量表达式1][常量表达式2]其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如:inta;说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:二维数组在概念上是二维的,即是说其...

C语言二维数组问题 将一个三行四列的二维整形数组中的最大值和最小值...
} } alert('最大值'+max);} functionmin(arr){ varmin=arr[0][0]for(vari=0;i<3;i++){ for(varj=0;j<4;j++){ if(min>=arr[i][j]){min=arr[i][j];} } } alert('最小值'+min);} vara=[[1,2,3,4],[1,2,3,4],[1,2,3,4]]shuzu(a);max(a);min(a);...

输入一个二维数组(3×4)的元素,输出其中值最大的元素值,以及它的行号和...
intmain(){ inta[3][4]={1,2,3,4,5,6,7,8,23,48,11,12};inti,j,max=a[0][0],row,colum;printf("数组为:\\n");for(i=0;i<3;i++){ for(j=0;j<4;j++)printf("%4d",a[i][j]);printf("\\n");} for(i=0;i<3;i++){ for(j=0;j<4;j++){ if(a[i][j...

在c指针的通过指针引用多维数组中,为什么a[0]和*(a+0)等价
多维数组中指针和一维数组中的指针是不一样的,以二维数组为例来说;int a[3][4];\/\/ 二维数组的每一行都可以看成是一个一维数组 数组名a 是二维数组的首地址 a+0 也是二维数组的首地址,也可以看成是二维数组行下标为0那行的首地址 a+1 是二维数组行下标为1的那行元素的首地址 a+2 是...

c语言中for语句的嵌套怎样理解
所谓for语句的嵌套就是多层for循环的使用,举个二维数组赋值的例子,int a[3][4];\/\/定义一个3行4列的二维数组 int i;\/\/用来控制行 int j;\/\/用来控制列 int tmp=1;for(i=0;i<3;i++)\/\/该循环就是第一层循环,用来控制行号 { for(j=0;i<4;j++)\/\/该循环就是第二层循环,用来控制...

相似回答