c++ 函数内定义变量返回 static

测试代码:

#include<bits/stdc++.h>
using namespace std;
char * fun() {
    char s[] = "abcde";
    printf("fun:%p\n",s);
    return s;
}
char * fun1() {
    static char s[] = "abcde";
    printf("fun1:%p\n",s);
    return s;
}
char * fun2() {
    char *s = new char[6];
    strcpy(s,"abcde");
    printf("fun2:%p\n",s);
    return s;
}
void fun4() {
    static int a = 0;
    a++;
    printf("%d\n",a);
}
int main() {
    printf("%p %s\n",fun(),fun());
    printf("%p %s\n",fun1(),fun1());
    printf("%p %s\n",fun2(),fun2());
    fun4();
    fun4();
    fun4();
    return 0;
}

 

运行结果:

fun:0x7ffe5d532b00
fun:0x7ffe5d532b00
(nil) (null)
fun1:0x601060
fun1:0x601060
0x601060 abcde
fun2:0x2587030
fun2:0x2587050
0x2587050 abcde
1
2
3

 

转载于:https://www.cnblogs.com/cdyboke/p/7780412.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值