C语言指针问题 *score 与score 有什么区别#includemain(){void average(float *p,int n);void search(float (*p)[4],int n);float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(* score,12);search(score,2);}void average(float * p

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 13:47:11
C语言指针问题 *score 与score 有什么区别#includemain(){void average(float *p,int n);void search(float (*p)[4],int n);float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(* score,12);search(score,2);}void average(float * p

C语言指针问题 *score 与score 有什么区别#includemain(){void average(float *p,int n);void search(float (*p)[4],int n);float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(* score,12);search(score,2);}void average(float * p
C语言指针问题 *score 与score 有什么区别
#include
main()
{
void average(float *p,int n);
void search(float (*p)[4],int n);
float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};
average(* score,12);
search(score,2);
}
void average(float * p,int n)
{
float * p_end;
float sum=0,aver;
p_end=p+n-1;
for(;p

C语言指针问题 *score 与score 有什么区别#includemain(){void average(float *p,int n);void search(float (*p)[4],int n);float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(* score,12);search(score,2);}void average(float * p
score是二维数组指针常量.看到指针,你第一反应是想它指向什么.对于score,它指向的是一维数组score[0],而score[0]它也是个一维数组指针常量(同样,你也得马上反应过来score[0]是指向score[0][0]的).所以*score就是score[0]了,所以average(*score,12)就是把score[0][0]的地址和score的元素总个数传给了该函数咯.
再看下search的函数定义:search(float (*p)[4],int n).
float (*p)[4]; //看声明先看变量名,然后由右往左看.如果遇到括号则先看括号里的.所以这声明是说:p是个指针(p的右边是括号,所以先看括号里的.'*'即代表是个指针),这指针指向一个数组(括号看完后就往右看),该数组有4个float型元素.
即p为数组指针(后面两个字说明它是指针,前面两个字说明它指向一个数组.就像我们说美女一样,后面一个字说明它是女人,前面一个字才说明它是美丽的.如果是指针数组则说明它先是个数组,然后它的元素为指针,那么该定义为:float *p[4])
简单点说float (*p)[4]即声明p指向有4个float型元素的数组,而上面我说了,score也是指向一维数组score[0]的,而score[0]正是有4个float型元素的数组.即p和score是同类型的指针(只不过p是指针变量,score是指针常量).
所以search(score,2)中的实参score是可以作为"void search(float (* p)[4],int n)"这函数的形参p的(因为类型一样).它是把数组名和2传给了该函数.(顺便提下,score[n][i]=*(*(score+n)+i),而score和p是同类型的,所以*(*(p+n)+i)即是score[n][i])

C语言指针问题 *score 与score 有什么区别#includemain(){void average(float *p,int n);void search(float (*p)[4],int n);float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(* score,12);search(score,2);}void average(float * p 一道C语言指针的问题 C 语言 用while loop 停不下来了Part 1:Reading user input,keeping track of scores.Write a program that asks one question,records the response,keeps track of a score, and prints out the score after a response.This question needs to have a scor c语言指针p+1与p++有什么不同 C语言中指针p与*p的区别? C语言的行指针与元素指针有什么区别? C语言指针**p是什么意思 C语言种指针是什么意思 C语言指针求解释, C语言指针输出问题问题主要是下面输出数据的时候,如果是p 请教C语言一道指向二维数组指针的题,有3个同学,各学4门课程,输出第n个同学的成绩.错误的程序是这样的:#includevoid main(){void search (float *p,int n);/*这里的 float *p 好像有问题*/float score[3][4]={65,6 C语言指针问题,急.为什么函数现实错误少了一个括号? c语言编程,根据分数划分成绩#include stdio.h#include conio.hvoid main(){int score;scanf(%d,&score);if(score60 || score==60) && score70 || score==70) && score80 || score==80) && score C语言指针基本概念及其指针变量的定义是什么 C语言中指针的作用是什么? C语言的指针要怎么理解 这些C语言指针分别是什么意思? C语言中的指针指的是什么