指针可以返回,但是要注意函数内部的数组用指针返回后,到了函数外面,这个数组已经被释放了。所以是个野指针,用了就死机!这种情况可以动态申请一段内存,比如malloc函数,用完后再用free函数释放内存。
青河网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
首先,你不应该返回局部变量的指针,因为局部变量在离开函数后就会被销毁。如果你想这样返回一个数组的话,你应该malloc出一个数组来返回。至于应该return什么,return (malloc出来的那个指针)就可以了。
C语言属于高级编程语言。在C语言中一个函数不能返回局部地址即指针。
函数A的返回值错误。虽然地址和指针很像,但还是不同的两个东西。而且,一旦出了函数A,返回的地址,也就该被回收,会导致程序出错。是非常危险的行为。举个例子说明下吧。
struct student *p, *q, *head;这里head不就是 struct student 类型的指针么。
p是指向局部变量的指针,当函数退出时,局部变量会被释放,这时,p所指向的位置就不一样是原来的数。因为fun()函数返回的值被计算机的临时变量存放,当赋值给p的时候,p是指向临时变量的地址,所以还可以读取出100。
node-strPara,而要用(*node).strPara,这两者效果一样,但前者更常用,后者一般只在教科书上才有 你的程序貌似建立了一个链表,然后 node 指针不断沿着链表先后移动,以添加数据。
st *fun(struct st x)这里的形参x其实是传递的实参y的拷贝,这和形参不能影响实参是同样的道理。
1、那你应该用指针的指针才行,然后函数返回指针。
2、首先,不需要返回值,当函数参数为地址时,一般不需要返回值。因为被调函数可以通过地址改变对应的内存单元里的值。另外,你都定义成void类型的函数了,也不可以有返回值了。答案应该是5 3 5 3(我没有运行)。
3、struct student *p, *q, *head;这里head不就是 struct student 类型的指针么。
4、C语言指向函数的指针承载的信息比较复杂,组织起来要素要写全。
5、函数A的返回值错误。虽然地址和指针很像,但还是不同的两个东西。而且,一旦出了函数A,返回的地址,也就该被回收,会导致程序出错。是非常危险的行为。举个例子说明下吧。