返回指针值在C语言的函数
提问人:杨紫红发布时间:2020-11-17
一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。其概念与以前类似,只是带回的值的类型是指针类型而已。
格式: 类型名 *函数名(参数表);
例: int *a(int x, int y);
a是函数名,调用它以后能得到一个指向整型数据的指针(地址)。
关于函数的返回值是指针的情况,程序设计时应注意:
格式: 类型名 *函数名(参数表);
例: int *a(int x, int y);
a是函数名,调用它以后能得到一个指向整型数据的指针(地址)。
关于函数的返回值是指针的情况,程序设计时应注意:
1、因数组名是地址常量,用于接受这种返值的对象不能是数组名,这与把数组名作为实在参数传递给形式参数的情况不同(作为形式参数的数组名总被视为指针)。
2、不应将局部于被调用函数的指针作为返值返回给调用者,理由是局部于被调用函数的数据对象执行返回语句离开被调用函数后,原来分配的被调用函数的所有局部对象的存储空间立即被收回(释放),虽然调用者已经获得了正确的地址值,但此时它指向的存储区域的内容可能已经发生了变化,或许已经分配给其他函数了。如果调用函数中仍然使用这个指针去存取那个区域中的数据,得到的可能并非原先的数据。对于这种情况的正确做法是应该把所处理的对象定义成全局对象或static型对象。
继续查找其他问题的答案?
相关视频回答
回复(0)
点击加载更多评论>>