一些c++的问题,求大神指教

不好意思,有点多,我是真的不知道,老师指针的一笔带过的,我实践抽到的题目要用指针做,书里的例题我

看不懂,所以请求大神指点一二,谢谢啦,批注就是不知道的

三个知识点
动态二维数组的申请
值传递和指针传递
二维数组的加长
看懂了 自然就懂了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-07

1、为什么这里n,m要用*的形式

    这是地址,如果不用*,函数结束的时候m、n的生命也就结束了,输入的m、n不会保留。例题中可能要求m、n保留下来,所以直接传的地址,对主函数中的m、n的地址直接修改,只要程序没有结束,m、n还在。

2、分配动态存储空间的时候........

   *[*n+1]前面的*其实是float*,因为前面用的是float ** ,即这个指针的地址,所以申请空间的时候因该是申请指针的空间,也就是float*

   *n是上面输入的学生数,*n+1就是学生数+1,只是多申请一个空间,可能是为了防止一些意外的错误。

3、str_p[i]是什么。。。。。。

   str_p[i]是刚才申请的第i个空间,是一个float指针,应该表示的i个同学

   *m是上面输入的学生成绩门数,*m+2就是学生成绩门数,+2的原因应该和上面那个问题差不多

4、为什么去等号。。

    个人认为他写错了,感觉是for(int j=1;j<=m;j++) 或者 for(int j=0;j<m;j++)

5、再写一遍?

    i原因来是0~n-1的循环,现在是n,和刚才的不一样

    至于为什么还要申请。。估计是为了返回sr_p,为了让这个东西更好看吧。。

6、指向指针的指针?

    srecord_p因该是二维的,第i行表示第i个同学,第i行j列表示第i个同学的第j门成绩。一个指针也就能表示一维,指针的指针就可以表示两维了。

也就是 srecord_p[i]表示第i个同学 srecord_p[i][j] 表示第i个同学的第j门成绩

7、调用函数。。

    就是调用函数啊。。

&n,&m是传地址,第一问回答了。。

函数返回值是float**的,srecord_p会获得函数的返回值。。

追问

谢谢啦

我想问你一个问题,就是那一张照片里,我想把姓名用字符,成绩用单精度,要怎么弄啊

不然可以编译,不可以运行

本回答被提问者采纳
相似回答