搜索
首页 电脑/网络 程序设计 C/C++

关于函数返回指针

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

全部回答

2012-10-23

0 0

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

2012-10-30

203 0

    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。
     。

类似问题换一批

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报