您的位置:首页 > 编程语言 > C语言/C++

C语言中函数返回值的问题

2016-03-16 21:08 399 查看
c语言中有关于在函数返回值的问题,在函数中的局部变量主要是在栈上开辟的,出了函数变量就被回收了,针对函数返回值得问题,给出下面几个比较具体的例子来说明:

函数返回值是在函数中定义的局部变量
这类型的返回值在主函数中是可以使用的,因为返回局部变量值得时候,返回的是值得一个副本,而在主函数中我们需要的也只是这个值而已,因此是可以的,例如

int fun(char *arr)

{

int num = 0;

while (*arr != '\0')

{

num = num * 10 + *arr - '0';

arr++;

}

return num;

printf("%d ", num);

}

int main()

{

int tem = 0;

char *arr = "12345";

tem = fun(arr);

printf("%d",tem);

system("pause");

return 0;

}

2.函数返回的是函数中定义的指针变量

char *fun()

{

char *arr = "1234";

return arr;

}

int main()

{

char *tem = fun();

printf("%s", tem);

system("pause");

return 0;

}

这在运行过程中也是正确的。

3.函数不能返回局部变量的地址

int *fun()

{

int a = 10;

return &a;

}

int main()

{

int *tem = fun();

printf("%d", *tem);

system("pause");

return 0;

}

4.函数也不能返回数组的首地址

int *fun()

{

int arr[] = { 1, 2, 3, 4 };

return arr;

}

int main()

{

int *tem = fun();

system("pause");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 system return