所以说形参的地址可以作为返回值的想法是错误的,而且是危险的。
成都创新互联主要从事成都网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务保康,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
函数调用结束,形参分配的内存返回内存池,可供其他程序使用。但里面的数据并没有被清零。
最关键的是,当函数返回函数值后,函数的使命就结束了。所以这个函数体在呢内存中就销毁了。你即使能从函数中返回一个局部变量。你再去读这个地址的时候。东西都不在了。还有一点。
然后你可以在函数外面调用这个值. 严格意义上讲 就没有通过形参返回这一说,因为形参在函数调用完以后就会被释放,他是处于栈中的,只能通过形参所指向的地址返回,除非c++的参数引用,可以通过参数返回。
前面我们介绍过,所谓函数类型是指函数返回值的类型。 在C语言中允许一个函数的返回值是一个指针 ( 即地址 ) ,这种返回指针值的函数称为指针型函数。
如果没有return 语句,那么函数没有返回值,调用函数里面就不能把他当做一个数值来使用,会出现:fun();单独成句的语句,在fun()里面可能进行了一些操作,但不需要结果。
因为mx你声明有返回值的,所以在main里再声明一个变量如 int b 然后 b=mx(15);coutb aendl;C语言规定,不带括号的函数都返回函数的地址。相当于指针了,如mx就相当于指针了。
函数返回值的意思是将函数实现的结果返回给调用者。按标准来说,C的main函数是需要有返回值的。标准中main函数返回类型是int的,所以需要一个返回值。但是由于历史原因,很多地方可以看到没有返回值的main。
int*)。所以调用该函数的地方应该传入一个整形指针。这里强调一下指针的三个要点:①指针是一种特殊的变量;②指针这种变量存储的值为一个内存地址;③以指针变量的值为内存地址起始的若干字节存放着一个该类型的数。
1、static int array[10]; //因为array是局部变量,随scanffile()函数的结束,该内存被释放,因此,你在之后得不到相应的数据了。
2、同样的道理,想要返回字符串,只能把内容放在安全的地方,也就是动态内存,然后把该内存对应的地址返回就可以,就好比你把一个人的电话号码告诉另一个人,然后把你手机上的删除,另一个人也不受影响。
3、返回地址是可以,但是要知道返回后那个变量还在不。