QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 676|回复: 3

奇怪的函数 我想不通

[复制链接]
发表于 2005-9-10 16:36:04 | 显示全部楼层 |阅读模式
#include <stdio.h>

int &current();//奇怪没&下面的赋值就通不过编译
int a[4]={0,1,2,3};
int index=0;

main()
{
        current()=10;//函数怎么可以这样
        index=3;
        current()=20;

        for (int i=0;i<4;++i)
                printf("%d ",a);
        putchar('\n');
}

        int &current()
        {
                return a[index];
        }

输出:10 1 2 20

&current()是什么东西?前面怎么有个&?为什么可以对他赋值?
翻了2天书找不到答案
发表于 2005-9-10 17:49:45 | 显示全部楼层
返回值引用
回复

使用道具 举报

 楼主| 发表于 2005-9-10 19:11:06 | 显示全部楼层
谢谢
我明白了
函数返回值时,要生成一个值的副本。而用引用返回值时,不生成值的副本。
对把
回复

使用道具 举报

发表于 2005-9-10 21:24:33 | 显示全部楼层
哈哈,其实这是我想出来的,还不知道有没有这回事。
不过这种用法很怪癖,不用为妙!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 11:35 , Processed in 0.065794 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表