本文概述
- C
- C
程序1:
【如何从C中的函数返回指针()】下面的程序将给出细分错误, 因为’ 一种’ 对于该函数而言是本地的:
C
//C program to illustrate the concept of
//returning pointer from a function
#include <
stdio.h>
//Function returning pointer
int * fun()
{
int A = 10;
return (&
A);
}//Driver Code
int main()
{
//Declare a pointer
int * p;
//Function call
p = fun();
printf ( "%p\n" , p);
printf ( "%d\n" , *p);
return 0;
}
输出如下:
以下是上述程序的输出:
文章图片
说明:
这种情况下的主要原因是, 编译器总是使叠用于函数调用。一旦函数退出函数栈得到删除导致函数的局部变量超出范围。
静态变量即使它们超出范围也具有保留其价值的特性。因此, 要执行从C中的函数返回指针的概念, 必须将局部变量定义为静态变量。
程序2:
C
//C program to illustrate the concept of
//returning pointer from a function
#include <
stdio.h>
//Function that returns pointer
int * fun()
{
//Declare a static integer
static int A = 10;
return (&
A);
}//Driver Code
int main()
{
//Declare a pointer
int * p;
//Function call
p = fun();
//Print Address
printf ( "%p\n" , p);
//Print value at the above address
printf ( "%d\n" , *p);
return 0;
}
输出如下:
0x601038
10
推荐阅读
- 如何从PHP运行JavaScript()
- 如何限制C++中对象的动态分配()
- 如何删除内联块元素之间的空间()
- 如何在PHP中删除非字母数字字符()
- mac上kubeadmin安装k8s(完整)
- redis 哨兵模式 sentinel
- powershell 向内部证书颁发机构申请证书
- k8s-apiServer认证
- 回首图扑软件 2021,展望未来