c语言函数
#include <stdio.h>int *func(int n);
int *func(int n)
{
n++;
return &n; //不是不能返回参数的地址吗,但是我自己上机好像是可以的?
}
int main(void)
{
printf("%d\n", *func(520));
return 0;
} int main(void)
{
int a = 520;
printf("1: %d\n", a);
printf("2: %d\n", *func(520));
printf("完成");
return 0;
}
输出:
a.c: In function 'func':
a.c:10:12: warning: function returns address of local variable [-Wreturn-local-addr]
10 | return &n;
| ^~
1: 520 指针函数 返回的是一个地址,没有规定什么地址不能返回。
只是你返回局部变量的地址,对你来说没有用处,函数一结束,相应的变量也就释放了。
有些编译器会警告提醒。
页:
[1]