一些c++的问题,求大神指教
看不懂,所以请求大神指点一二,谢谢啦,批注就是不知道的 展开
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会获得函数的返回值。。
谢谢啦
我想问你一个问题,就是那一张照片里,我想把姓名用字符,成绩用单精度,要怎么弄啊