C语言问题,求详解~~~

若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具... 若有定义int(*Pt)[3];,则下列说法正确的是
  A)定义了基类型为int的三个指针变量
  B)定义了基类型为int的具有三个元素的指针数组pt
  C)定义了一个名为*pt、具有三个元素的整型数组
  D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
展开
 我来答
未来需努力点缀
2012-09-17 · TA获得超过4680个赞
知道大有可为答主
回答量:850
采纳率:50%
帮助的人:634万
展开全部
你好
int (*Pt)[3] 这种是声明一个行标不确定的二维数组
楼主要和int *Pt[3]区分开来 这个才是声明具有3个指针变量指针数组
给楼主一个实例 帮助你理解:
#include<stdio.h>

int main(void)
{
int a[2][3]={{0,1,2},{1,2,3}};
int (*pt)[3];
int i,j;
pt=a;//这里就是将二维数组名a赋值给动态二维数组pt
//正是因为pt的行标不确定 那么pt就是一个指针变量 可以赋值
//而数组a是行标确定 a就是指针常量

printf("a:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%-2d",a[i][j]);
printf("\n");
}
printf("\npt:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%-2d",pt[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
你会发现程序运行结果是a和pt是一样的 这证明其正确性
希望能帮助你哈
百度网友519daa4
2012-09-17 · TA获得超过113个赞
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:138万
展开全部
可以这样理解:
1:首先:int * Pt 表示整型类型的指针变量。可以存放整型地址,举个例子:
int a=1;
Pt=&a; //把a的地址赋值给Pt;
2: [3]表示数组变量;
那么 (*Pt)[3] 表示指针类型的变量数组,个数为3;
int(*Pt)[3] 表示一个个数为3的int类型的指针变量数组。
所以个人感觉答案为B.
追问
我感觉也是,可惜答案是D来着~~~
追答
唉,确实错了,我帮你找找相关的问题,答案解释还很合理,老师确实说过*P=P[];
详细地址:http://zhidao.baidu.com/question/176331908.html
http://zhidao.baidu.com/question/236780891.html
希望对你有帮助,我的错误答案就不用看了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jellycgl
2012-09-17 · TA获得超过417个赞
知道小有建树答主
回答量:1149
采纳率:66%
帮助的人:963万
展开全部
定义了一个数组,包含三个元素,每个元素是一个指针变量,指向的是一片int的内存空间,答案选A
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sodrsodr
2012-09-17 · TA获得超过326个赞
知道答主
回答量:75
采纳率:0%
帮助的人:54.6万
展开全部
()具备最高优先级,这样看你应该能容易理解些
#define qt *Pt
int qt[3];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6c82680
2012-09-17
知道答主
回答量:46
采纳率:0%
帮助的人:7.3万
展开全部
选A
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式