定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是(*a)[3],*a[2],*a[3]

作者&投稿:姓段 (若有异议请与网页底部的电邮联系)


定义数组a, 所以a本身不是指针,数组元素是指针类型,上图一维指针数组即是。



你记住:C语言的定义与调用写法一致。
“一个数组a是一个具有3个元素的指针数组”
这说明a是一个数组。
以下
(*a)[3],*a[2],*a[3]
把(*a)[3]分解:a——>*a,这说明a是个指针——>(*a)[3],这个指针指向一个长度为3的数组。
把*a[3]分解:a——>a[3],这说明a是个长度为3数组——>*a[3],这些数组放的元素是指针类型的。
可见*a[3]对。

定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是~

首先明白指针数组是什么
 数组元素全为指针的数组称为指针数组
A选项中定义了一个指针,该指针指向了一个具有三个元素的数组,所以A错
B选项定义了一个数组,数组元素是指针,但是元素个数为2,B错
所以选C

指针数组 int *p[3]
指向数组的指针 int (*p)[3]
不知道能不能解决你的问题

关于多维数组的指针的疑问
答:如果要声明一个指针指向数组a,应该是 int p,或者是(*p)[3],第一个是声明一个二级指针因为2维数组的数组名是一个2级指针,第二个是声明一个指向一个具有3个元素的一位数组,他们都可以这样 p=a。对2维数组a是行地址,取*就变成了列地址面对列地址取*就成为具体元素。所以取*是降级运算。回...

在计算机C语言中,二维数组,a[][3]={1,2,3,4,5,6,7,8,9};a[0][0]=...
答:另外数组中的元素是按行存放的,先存第一行,再放第二行,依次存放。还有

这个东西那个给我理解下呀 求你们了 我都想N天了
答:int a[2][2],数组在内存空间的地址分布是连续的.a[0][0],a[0][1],a[1][0],a[1][1]共有这4个元素=m*n=2*2=4 相当于a[0][0]的指针地址ptr,a[i][j]的地址为n*i+j,<0,0>=2*0+0=0,<0,1>=2*0+1=1,<1,0>=2*1+0=2,<1,1>=2*1+1=3...反正是数列,不...

99. 若有定义int a[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/...
答:选A sizeof(a)表示的是整个二维数组的字节数。因为a[0]代表的是第一行的地址,所以此处sizeof(a[0])指的是一行的字节数。a[0] 是指第0行的3个元素,因而size of(a[0])=3 例如:int a[3][4]={1,2,3,4,5,6,7,8,9};相当于int a[3][4]={{1,2,3,4},{5,6,7,8}...

编写程序。定义一个二维数组a[3][3],每个数组元素的值由a[i][j]=...
答:编写程序。定义一个二维数组a[3][3],每个数组元素的值由a[i][j]=※2+j※3得到,要求按矩阵形式输出。通过调用函数,输出a[3][3]数组元素的总分和平均分 编程思路分析:题目的意图是用循环语句对数组的元素赋值,循环语句输出数组元素,函数方式计算出数组元素的总分和平均分 解答办法:使用双重fo...

若有定义:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p[3],m;
答:结果为11。int *p[3]表示数组p是一个指针数组,每个元素是一个指向整型数据的一个指针。for(m=0;m<3;m++)表示有三次循环,m分别是0,1,2。p[m]=&a[m*4]执行后,将a[0]、a[4]、a[8]的地址分别赋予给p[0]、p1[1]、p[2], 即指针p[0]、p1[1]、p[2]指向a[0]、a[4]...

c语言数组的定义
答:1、数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。2、数组名的书写规则应符合标识符的书写规定。3、数组名不能与其它变量名相同。例如:int a;float a[10];是错误的。4、方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其...

12. 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是...
答:其中 a[0]、a[1]、a[2]、a[3]、a[4] 分别表示这 5 个元素的变量名。如果从 1 开始,那么数组的第 5 个元素就是 a[5],而定义数组时是 int a[5],两个都是 a[5] 就容易产生混淆。而下标从 0 开始就不存在这个问题了!所以定义一个数组 a[n],那么这个数组中元素最大的下标是...

定义一个二维数组a[3][2],赋初值{{1,2},{4,5},{5,6}},至少用三种不同的...
答:1. 分行进行初始化 int a[2][3]={{1,2,3},{4,5,6}};2. 不分行的初始化 int a[2][3]={ 1,2,3,4,5,6};3. 为部分数组元素初始化 static int a[2][3]={{1,2},{4}};4. 可以省略第一维的定义,但不能省略第二维的定义。系统根据初始化的数据个数和第2维的长度...

数组:有一个二维数组a[3] [3] ,元素为1~9,(1)打印上三角和下三角的元素...
答:include <stdio.h> int main(){ int a[3][3],b[3][3];for(int i=0;i<3;i++)for(int j=0;j<3;j++){ scanf("%d",&a[i][j]);b[i][j]=a[i][j];} printf("矩阵上三角阵\n");for(int i=0;i<3;i++)for(int j=0;j<3;j++)//矩阵上三角阵 { if(i>j...