C语言这是书上的一个例题,但是我有点看不懂。 他说在加了* 后 p +i 由行操纵变成了列操纵 为什么阿? 5
#include<stdio.h>voidmain(){floatscore[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66...
#include<stdio.h>
void main ()
{
float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
float *search(float (*ptr)[4], int n);
float *p;
int i,m;
printf("enter the number of student:");
scanf("%d",&m);
printf("the scores of No. %d are:\n",m);
p=search(score,m);
for (i=0;i<4;i++)
printf("%5.2f\t",*(p+i));
printf("\n");
}
float *search(float (*ptr)[4], int n)
{
float *pt;
pt=*(ptr+n);
return (pt);
} 展开
void main ()
{
float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
float *search(float (*ptr)[4], int n);
float *p;
int i,m;
printf("enter the number of student:");
scanf("%d",&m);
printf("the scores of No. %d are:\n",m);
p=search(score,m);
for (i=0;i<4;i++)
printf("%5.2f\t",*(p+i));
printf("\n");
}
float *search(float (*ptr)[4], int n)
{
float *pt;
pt=*(ptr+n);
return (pt);
} 展开
展开全部
调用search函数后返回一个二维数组的第n行的首地址,赋给了p,p此时相当于int p[] = {.....};等价于一个一维数组,一维数组的首地址加上一个数相当于在这个一维数组里找第i个元素。比如:p[0]就是第一个元素,p[1]是第二个元素....也可以像你写的那样,p+i表示该行第i列的元素的地址(p本身村的就是地址),要想取出地址里的值就用*:*(p + i)。得到了该行第i个元素的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询