
C语言问题,求详解~~~
若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具...
若有定义int(*Pt)[3];,则下列说法正确的是
A)定义了基类型为int的三个指针变量
B)定义了基类型为int的具有三个元素的指针数组pt
C)定义了一个名为*pt、具有三个元素的整型数组
D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组 展开
A)定义了基类型为int的三个指针变量
B)定义了基类型为int的具有三个元素的指针数组pt
C)定义了一个名为*pt、具有三个元素的整型数组
D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组 展开
展开全部
你好
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是一样的 这证明其正确性
希望能帮助你哈
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是一样的 这证明其正确性
希望能帮助你哈
展开全部
可以这样理解:
1:首先:int * Pt 表示整型类型的指针变量。可以存放整型地址,举个例子:
int a=1;
Pt=&a; //把a的地址赋值给Pt;
2: [3]表示数组变量;
那么 (*Pt)[3] 表示指针类型的变量数组,个数为3;
int(*Pt)[3] 表示一个个数为3的int类型的指针变量数组。
所以个人感觉答案为B.
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
希望对你有帮助,我的错误答案就不用看了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义了一个数组,包含三个元素,每个元素是一个指针变量,指向的是一片int的内存空间,答案选A
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
()具备最高优先级,这样看你应该能容易理解些
#define qt *Pt
int qt[3];
#define qt *Pt
int qt[3];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询