百科知识

如果函数内部的定义为-关于函数返回指针如果在函数中定义了一个指向局部变量的指针,那么在

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

最佳回答

  • 你理解的有误 p是指针,给他分配的地址是Oxddf7,那么p就代表Oxddf7,在Oxddf7中保存的就是指向的数据的地址,返回给调用函数的结果是Oxddf7中保存的数据,即p指向数据的地址,而不是Oxddf7;函数返回后,p就会被清理,也无效了,它的值就更无从说起了。 另外,p= &5;是错误的,不能对常量取地址,因此系统中根本不会给整型常量分配地址
    2012-10-23 11:56:41
  • 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.
    2012-10-30 17:54:05
  • 很赞哦! (230)