c++返回指针的函数 求助!!

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:48:31
我已经在student.cpp中定义了student *create()返回head指针,按理说返回的head应该默认为指向student结构体,但我在
main函数用head2=create();而不把head2申明类型,为什么编译不过,而加上student head2=create()就通过了,为什么啊,请高手指教

你想把create()的返回值赋给head2那么,head2的类型必须是create函数返回值的类型。因为如果你不明确head2的类型,那么系统怎么会知道应该head2指向的什么东西。比如同样的指针,分别指向int形和char形。那么加1的话,int型的就要移动4,而char的只要移动1.如果不知到指针的类型,他怎么可能知道应该移动几位。
同样的,对于结构体来说,你不明确类型,系统只知道地址,不知道各个成员应该怎么获取,都堆在以前,那怎么进行相关的操作。
所以,c++是不允许你这样的操作的。

具体的还是把代码贴上来一部分最好
在student *create()中返回的是指针,所以定义是也应该是
student * head2=create(),这样使用起来比较方便