社区
C++ 语言
帖子详情
如何传递一个临时变量的地址给指针函数
R9R9R9
2005-07-28 02:46:34
int i=10;
int foo()
{
return i;
}
void fun(const int &p)//如何改成指针形式..书中说无法将临时变量的地址传递给指针的函数
//但是既然引用可以.为什么指针就不可以.引用不是也是传地址的吗?
{
cout<<p<<endl;
}
int main()
{
fun(foo());
system("pause");
}
...全文
358
10
打赏
收藏
如何传递一个临时变量的地址给指针函数
int i=10; int foo() { return i; } void fun(const int &p)//如何改成指针形式..书中说无法将临时变量的地址传递给指针的函数 //但是既然引用可以.为什么指针就不可以.引用不是也是传地址的吗? { cout<<p<<endl; } int main() { fun(foo()); system("pause"); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
OpenHero
2005-07-29
打赏
举报
回复
学习
sankt
2005-07-29
打赏
举报
回复
学习
R9R9R9
2005-07-29
打赏
举报
回复
UP
R9R9R9
2005-07-28
打赏
举报
回复
TO: copygirl(wa!) ( )
你返回的并非是一个临时对象的地址.而是全局变量的地址..
TO:zhaozhencn(FlyingDonkey)
临时对象可以绑定于一个const 对象的引用(而非const引用则不行). 通过这种绑定,会自动延长临时对象的生存周期.
那为何不可以通过const指引来延长临时对象的生存周期呢?
如:void fun(const int *p)
beyondtkl
2005-07-28
打赏
举报
回复
临时对象不能为左值
同意樓上的樓上.
conglingkaishi
2005-07-28
打赏
举报
回复
跟楼上的学习了。
allen_zhaozhencn
2005-07-28
打赏
举报
回复
临时对象可以绑定于一个const 对象的引用(而非const引用则不行). 通过这种绑定,会自动延长临时对象的生存周期. 临时对象本身是非const的.
由于临时对象本身的生命周期的原因. 使得指针可能指向一个已经析构的对象的地址.而造成不确定的错误. (临时对象不能为左值)
copygirl
2005-07-28
打赏
举报
回复
如果想在fun函数中使用指针,那么foo函数返回的也应该是个指针。
int i=10;
int * foo()
{
return &i;
}
void fun(const int *p)
{
cout<<*p<<endl;
}
void main()
{
fun(foo());
}
xjp6688
2005-07-28
打赏
举报
回复
可以呀
WingForce
2005-07-28
打赏
举报
回复
虾米是临时变量啊
请指点一下
java
传递
指针
_Java:通过
指针
传递
参数
#includevoid swap(int *a,int *b); //声明
函数
int main(){int i=5,j=10; //初始化整数
变量
printf(“调用
函数
前,i=%d,j=%d\n...
指针
VS引用
代码:#include void f(int *a);void ff(int &b);void main(){ int x; f(&x); ff(x); printf("%d",x);}void f(int *a){ *a=1;}void ff(int &b){ b=2;}
变量
:说明: 根据
变量
内存监视情况可以清楚看到,通过
指针
方式修改
变量
值,实际上是在s
C语言-
指针
,使用
指针
交换两个整型数的值
首先通过
指针
变量
*pdata、*pdata2,去指向main()下&data1、&data2
地址
的值。然后再*pdata、*pdata2交换值。使用
函数
封装getChange()
函数
。
指针
引用的简单实例
// pointer_func.cpp : Defines the entry point for the console application.// #include "stdafx.h" void ptrswap(int *&v1, int *&v2){ int *tmp = v2; v2 = v1; v1 = tmp;} int main(int argc, char...
使用
指针
交换两个
变量
的值
/* * 使用
指针
交换两个
变量
的值 *
变量
a、b的
地址
没有变,但是
地址
指向内容发生改变 */ void swap(int *a,int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int a = 10; int b = 20; swap(&a,&b); printf("a = %d,b = ...
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章