社区
C语言
帖子详情
i和&i的分别
kwany
2003-08-21 01:17:33
请问以下代码中的i和&i 有什么分别?
各有什么用途?
#include "iostream.h"
void main(){
int no = 10;
int *i = &no;
cout << i <<endl;
cout << &i<<endl;
}
谢谢!!
...全文
73
13
打赏
收藏
i和&i的分别
请问以下代码中的i和&i 有什么分别? 各有什么用途? #include "iostream.h" void main(){ int no = 10; int *i = &no; cout << i <<endl; cout << &i<<endl; } 谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fixopen
2003-08-21
打赏
举报
回复
不明白楼主想知道什么?
&varname表示取得varname这个变量的地址(由于所有的变量都在内存中,所以都可以取得他们的内存位置,也就是地址),当然了,这个变量本身是个指针也无所谓。
这个地址一般放在指针变量里,该指针变量的类型就是varname的类型的指针,假设varname的类型是T,那么,这个指针变量的类型是T*。
cccloveyf
2003-08-21
打赏
举报
回复
引用楼主的话:
那为什幺要*p=i才是对,而*p = &i不对。*p不是要=值的地址吗?
回答:
如果是定义的同时初始化,用int *p=i这种形式,
如果是定义和初始化分离的,用int *p;p=&i;这种形式.
#include "iostream.h"
void main(){
int no = 10;
int *i = &no;
cout << i <<endl;
cout << &i<<endl;
}
i的值是no的地址,*i就是no的值,&i是i的地址.
liutaoxwl
2003-08-21
打赏
举报
回复
在指针变量初始化时,就是这样的
int no=10;
int *i=no;
这样,可以
int *j;
j=&no;
chon81
2003-08-21
打赏
举报
回复
i是变量.
&i是i变量在内存中的地址
ding198116
2003-08-21
打赏
举报
回复
#include "iostream.h"
void main(){
int no = 10;
int *i = &no;
int *p = i;
cout << *p; //输出10
}
int *i = &no; //定义语句:*在此处作定义指针变量用,而非间接引用,将no的地址传给i,i拥有了no的地址,即*i为no的值,
int *p = i; //因为no的地址存放在i中,i即表示no的地址,是将no的地址传给*p,而不是int *p = &i;这样是把指针i在内存中的地址给了p这样是不允许的。所以*p输出10
jack_wq
2003-08-21
打赏
举报
回复
那为什幺要*p=i才是对,而*p = &i不对。*p不是要=值的地址吗?
*p存储的是变量的值,p是变量的地址
楼主明白了吗?
hillyee
2003-08-21
打赏
举报
回复
cout <<i 又不是10,为什么说是i的值呢?!
这里是指输出i指向的那个变量的地址。该变量的地址也就是i的值。
int *p = i;
相当于 int *p; p=i;
也就是是p和i同时指向一个地址。 int *i = &no; i=&no; 就有p=&no。
cout << *p; 也就相当于*p=no,cout << no; no=10. 输出10。
jscsqb
2003-08-21
打赏
举报
回复
i是一个指针,指向的是变量no;也就是i所指向的内存单元存放的是变量no;
i本身也是一个值,这个值就放在&i这个内存单元中;
ShiChao
2003-08-21
打赏
举报
回复
void main(){
int no = 10;
int *i = &no;
cout << i <<endl; // 输出i指向的地址,也就是&no
cout << &i<<endl; // 输出i自己的地址
}
WhatCanIdoing
2003-08-21
打赏
举报
回复
那为什幺要*p=i才是对,而*p = &i不对。*p不是要=值的地址吗?
因为i存储的已经是地址了. &i是i在内存中的地址,不是i存储(指向)的地址
WhatCanIdoing
2003-08-21
打赏
举报
回复
i 就是no 在内存中的地址;
&i 就是i的在内存中的地址
kwany
2003-08-21
打赏
举报
回复
还是不太明白~~
cout <<*i; //输出10
cout <<i; //输出一个地址
cout <<&i; //输出另一个地址
cout <<i 又不是10,为什么说是i的值呢?!不明白!!
====================================================
還有
#include "iostream.h"
void main(){
int no = 10;
int *i = &no;
int *p = i;
cout << *p; //输出10
}
那为什幺要*p=i才是对,而*p = &i不对。*p不是要=值的地址吗?
谢谢!!
oopig
2003-08-21
打赏
举报
回复
&i是获取i这个变量的地址,i就是获取这个变量的值。
这些都是非常基本的知识。
2024-2030全球及中国PCB接触式探头行业研究及十五五规划分析报告.docx
2024-2030全球及中国PCB接触式探头行业研究及十五五规划分析报告
网站界面设计mortal0418代码
网站界面设计mortal0418代码
PHP毕业设计-校园失物招领系统源码+数据库.zip
PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可
2024年神经酸行业分析报告.pptx
2024年神经酸行业分析报告.pptx
Java爬虫信息抓取的实现 完整实例(源码)
【Java爬虫】信息抓取的实现 完整实例(源码)
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章