三九宝宝网宝宝教育教学论文

请教C语言一道指向二维数组指针的题谢谢!

01月06日 编辑 39baobao.com

[C语言二维字符串数组的问题大牛进]指用来存放字符的数组字符数组的定义用来存放字符量的数组称为字符数组。其定义的一般形式时: char 数组名[数据长度] 字符数组用于存放字符或字符串,字符数组中的一个元素存...+阅读

一、你的 float score 数组定义的是:一个3行、4列的二维浮点数组,数组的元素为浮点数。如果你换个格式书写就清晰了!float score[3][4]={{65,67,70,60,},{80,87,90,81,},{90,99,100,98}};在调用的过程中,score 就是这个数组的首地址,指向的是浮点数组{65,67,70,60,}。score + 1 指向的是数组{80,87,90,81,}。

二、你的 float *p 定义的是:一个指向浮点数的指针。

这个是一维的。在调用的过程中,float 指向的是 xx。一个浮点数字。两个的定义不同,所以参数传递过程中会出错。

三、你的 float (*p)[4] 定义的是:一个指向含有四个元素的浮点数组的指针。在调用的过程中,float 指向的是{xxx,xx,xx,xx,},由四个浮点数组成的数组。这时两个定义相同,所以参数传递过程中没有错误。

四、有个建议,你的程序书写格式不清晰,不利于你纠错和修改,应该尽量的清晰、明确,不建议使用简化方式定义参数。

作为一个软件工作者,应该尽量使程序流畅、格式清晰、易读,这是一个软件工作者最基本的职业素养。格式化后,程序如下,会清晰很多:#includevoid main(){ void search (float (*p)[4],int n);/*这里的 float *p 好像有问题*/ float score[3][4]={{65,67,70,60,},{80,87,90,81,},{90,99,100,98}}; search(score,2);}void search(float (*p)[4],int n)/*这里的 float *p 好像有问题*/{ int i; printf("the score of No.%d are:\n",n); for(i=0;i

以下为关联文档:

C语言的二维数组问题更正:选D,其他说明不变,只是没注意看题目,经♂Ёdīιу提醒才发现 静态声明的二维数组的存储是连续的 比如int a[2][2] = { {1,2}, {3,4} }; 那么它在内存里的实际存储其实就是1...

C语言上机题:二维数组问题#include const int inf=(1<<30); //这是表示无限大,不这么考究的话就直接赋值999999 #include int main(){ int arr[3][4]; int minRow[3] = {inf ,inf ,inf}; int maxCol[4]...

呵呵问一个C语言中二维数组的问题1. 一维数组存放相同的值,但是如果是矩阵,行列式等类型的,用二维的就比较方便了.至于字符数组,只是说明它里面存放的元素是字符而已. 2. 注意{{1},{2},{3}}里面的1,2,3是有{}的,...

c语言中二维数组输入问题#include<stdio.h> main() { char a[100][100]; int i,n; scanf("%d",&n);\\这里会留下一个回车在缓冲区。 getchar();\\吃掉上次留下的回车。 for(i=0;i<n;i++) { gets(a[i]); }...

c语言问题定义二维数组楼主你好~ 修改了一下代码,请结合注释来阅读代码: #include<stdio.h> int main(void) { int n,i,j,d; d=0; static int a[10][10]; printf("Input n:"); scanf("%d",&n); for(i=0;...

C语言中如何生成一个随机数组代码: #include<time.h> #include<stdlib.h> #include<stdio.h>void main() { srand( (unsigned)time( NULL ) ); int a[100]; printf("随即初始化数组的100个数(范围是0~100).\n...

C语言中的字符指针数组排序完整程序如下: #include<stdio.h> void sort_string(char **p,int n){ int i,j; char s[80]; for (i=0;i<n-1;i++){ for (j=i+1;j<n;j++){ if (strcmp(*(p+i),*(p+j))<0){ st...

c语言字符串数组排序#include <stdio.h> #include<string.h> main() { char*p_str[8]={"Paris","York","London","Shanghai","Edo","Taipei","Beijing","Singapore"},*temp; int i,j; for(i=0;i<7;i++)//冒泡法...

C语言一维指针指向二维数组代码改错有以下几处要改,从调用函数说起: 首先void sortStr(char *s)改为void sortStr(char s[][20])原因在于,s是作为一个字符二维数组,需指定每行宽度。而你写的是字符的指针,顶多可以...

推荐阅读
图文推荐