注册 登录
编程论坛 C++教室

函数返回指针的问题?

newyj 发布于 2008-02-28 21:43, 1044 次点击
在书上看到的 函数 返回指针 没有看懂是什么意思 怎么使用
还请 举些 例子 说明 一下
谢谢了
7 回复
#2
sunkaidong2008-02-28 22:04
#include"stdio.h"
int i=0;
int *p()
{
    return &++::i;

}
void main(void )
{

    printf("%d,%d\n",::i,*p());
    *p()=10;
    printf("%d",::i);


}

[[it] 本帖最后由 sunkaidong 于 2008-2-28 22:10 编辑 [/it]]
#3
newyj2008-02-28 22:44
谢谢啊 是不是 返回指针 和 返回引用 时  *p()=10;引用函数都放在左边啊
不是 都放在右边吗
还有 就是 返回引用 和 返回指针的区别啊
#4
sunkaidong2008-02-28 22:59
返回引用是对变量起别名,你返回的就是变量自己.返回指针就是返回的地址
#include"stdio.h"
int i=0;
int *p()
{
    return &++::i;

}
int &p1()
{
    return ::i;

}
void main(void )
{

    printf("%d,%d\n",::i,*p());
    *p()=10;
    printf("%d,%d,%d",::i,&::i,p());
    p1()=0;
    printf("%d,%d,%d",::i,&::i,p1());


}
#5
sunkaidong2008-02-28 23:00
你理解一下,但是要注意不管那一个都不能返回局部变量......
#6
newyj2008-02-29 11:28
谢谢 楼上的 耐心 回答 是不是 引用 一般的函数 是把 函数 放在 等号的左边
只有引用 返回 引用和指针的 函数时 才把 函数 放在 等号的左边啊
还有就是 返回一般的值 与 返回 引用 和指针 有什么好处 或者是 有什么作用
什么是 不能返回局部变量啊
新手 不是 很懂 所以 还望见量 还请 耐心的指教啊  再 次 谢谢了
#7
sunkaidong2008-02-29 13:22
不是的,我只是想告诉你区别,不用指针和引用返回的只是数值,你不能对他进行赋值操作.只有引用和指针的时候才是返回变量自己和地址,可以对返回值进行赋值.比如int *  a();函数a(),返回类型是int *;那么在住程序中用a()其实就是返回一个地址,就是可以把a()当地址用,个人观点
#8
newyj2008-02-29 13:46
还是要 谢谢了  好象 有点 意思了
还是 要琢磨琢磨 以后 还请指教啊
1