爱问知识人 爱问教育 医院库

关于函数返回指针

首页

关于函数返回指针

如果在函数中定义了一个指向局部变量的指针,那么在函数返回后:是不是 指针指向的地址没有变化,而是指针指向的地址里面的内容被销毁了?
比如:
int *f(){
   int *p;
   p= &5;
   return p;
}
假设给p分配的地址是Oxddf7,那么函数返回后,p的值还是Oxddf7吗?

提交回答
好评回答
  • 2012-10-23 11:56:41
    你理解的有误
    p是指针,给他分配的地址是Oxddf7,那么p就代表Oxddf7,在Oxddf7中保存的就是指向的数据的地址,返回给调用函数的结果是Oxddf7中保存的数据,即p指向数据的地址,而不是Oxddf7;函数返回后,p就会被清理,也无效了,它的值就更无从说起了。
    另外,p= &5;是错误的,不能对常量取地址,因此系统中根本不会给整型常量分配地址

    好***

    2012-10-23 11:56:41

其他答案

    2012-10-30 17:54:05
  • int *f()定义的f为指针函数,也就是说该函数返回的是一个int类型的地址值
    int *a;
    a=f();假如你的p是指向0xddf7的,那么得到的a就是指向地址为
    0xddf7的指针。
    不过你的p= &5;是错误的,不能对常量取地址
    int (*f)(int);声明f是一个指向int f()指针;
    定义了函数int func(int x){return x}
    f=func;
    那么f(5)和func(5)的值相等,均为5;
    也就是说指针f指向了函数func.
     

    2***

    2012-10-30 17:54:05

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 176-195
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):