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

一个超短程序,就是有一句不明白 望各位赐教,3Q~~

小猪笨笨 发布于 2007-04-28 16:52, 515 次点击

#include <iostream.h>

void main()
{
int i=100,&refi=i;

cout<<refi<<endl;
refi+=100;
cout<<i;
}


#include <iostream.h> &refi=i,*refi
void main()
{
int i=100,*refi=&i; /*这里后半句不懂,定义的引用名字是 refi还是i啊?
后半句能不能分开写啊?该写成什么?*/

cout<<*refi<<endl;
*refi+=100;
cout<<i;
}

两段程序的输出结果是一样的 都是:
100
200

7 回复
#2
小猪笨笨2007-04-28 16:53

上面写多了一点 忘记去掉了 嘿嘿~~
#include <iostream.h>

void main()
{
int i=100,&refi=i;

cout<<refi<<endl;
refi+=100;
cout<<i;
}


#include <iostream.h>
void main()
{
int i=100,*refi=&i; /*这里后半句不懂,定义的引用名字是 refi还是i啊?
后半句能不能分开写啊?该写成什么?*/

cout<<*refi<<endl;
*refi+=100;
cout<<i;
}

两段程序的输出结果是一样的 都是:
100
200

#3
weishj2007-04-28 17:12
第一个程序的refi是对i的引用,refi和i是用同一内存地址;而第二个程序的refi是个指针变量,指向i的地址且refi本身也要占用内存
#4
purehom2007-04-28 17:32
恩。
#5
小猪笨笨2007-04-28 17:35
第一个完全明白,拿出来只是衬托一下第二个。。。
只是不明白第二个的 *refi=&i; 能不能分开写啊??
#6
weishj2007-04-28 18:11

int* refi;
refi=&i;

#7
aipb20072007-04-28 18:14
可以分开,声明了两个变量而已,一个是int,一个是int*,

这样写着实别扭
#8
海子2007-04-28 19:09

#include <iostream.h> &refi=i,*refi
void main()
{
int i=100,*refi=&i; /*这里后半句不懂,定义的引用名字是 refi还是i啊?
//这里是指针的定义,不是引用,两者是由很大区别的,若&放到变量前是表示取地址,一般在=后边,放到定义变量前,一般是引用
cout<<*refi<<endl;
*refi+=100;
cout<<i;
}

1