怎样将指针的地址值作为函数返回值返回

u010576908 2014-12-31 05:10:02
比如说,在这个具体例子中

int test(int *p)
{
int q;
return 问题
}

在这个int函数中,比如说p的地址是100,我如何获得这个“100”并将其返回呢?我试过return p,结果编译错误;也试过q=(int)p,也不行。我用的是devcpp

求前辈们帮助,谢谢!
...全文
676 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
竹影半墙 2015-01-02
  • 打赏
  • 举报
回复
int *test(int *p)
{
    int q;
    return p;
}
wengdunliang 2015-01-02
  • 打赏
  • 举报
回复
引用 1 楼 luo_miao 的回复:
你想说的是 return *p 吧?
自古2楼出真相
引用 11 楼 wengdunliang 的回复:
[quote=引用 1 楼 luo_miao 的回复:] 你想说的是 return *p 吧?
自古2楼出真相[/quote] 3楼说的也对,我觉得你应该要的是3楼的答案
wengdunliang 2015-01-02
  • 打赏
  • 举报
回复
引用 1 楼 luo_miao 的回复:
你想说的是 return *p 吧?
自古2楼出真相
野男孩 2015-01-01
  • 打赏
  • 举报
回复
q=(int)p为啥不行??

#include<stdio.h>
#include<time.h>

int test(int *p)
{
    int q;
    return q=(int)p;
}

int main(void)
{
	int aa[3] = {1,2,3};
	int c = test(aa);
	printf("c=%x, aa=%x\r\n", c, aa);

	return 0;
}
输出: c=18ff3c, aa=18ff3c
均陵鼠侠 2015-01-01
  • 打赏
  • 举报
回复
return (int) p;
问题在于,结果是实现定义的。如果结果不能被整数类型表示,则行为还是未定义的哩。
ChongQingJin28 2015-01-01
  • 打赏
  • 举报
回复
你的问题 有点问题 该怎么解释 “p的地址是100” 如果说 p的值是100(用 printf("%p",p) 输出的结果是100) 那么3楼是正确的 如果说p作为一个变量被存储在内存中的第100个字节处 那么6楼是正确的 你知道什么叫 “按值传递吗?”
南边风景好 2015-01-01
  • 打赏
  • 举报
回复
return (int)&p;//请确定你的编译环境是32位。不然返回int,就会有截断,64位环境下地址是64位的。 p是个临时变量,你把临时变量的地址返回是要干什么- -,肯定有不可告人的秘密
赵4老师 2014-12-31
  • 打赏
  • 举报
回复
#include <stdio.h>
int* test(int **p)
{
    return *p+1;
}
int main() {
 int d[2]={1,2};
 int *p;
 
 p=&d[0];
 p=test(&p);

 printf("%d\n",p[0]);//2
 return 0;
}
版主大哥 2014-12-31
  • 打赏
  • 举报
回复
楼主是要p指针指向的内存地址吧
做或不做 2014-12-31
  • 打赏
  • 举报
回复
也试过q=(int)p 如果返回值那么 这个不该是q = (int *)p;吗 return q; 你传进来 又传出去 是在开玩笑吗。 如果返回的是地址 int *q = p; return q; 你何不直接不调用函数 直接 在外面打印p的地址 为什么要返回printf 格式化字符 %p
版主大哥 2014-12-31
  • 打赏
  • 举报
回复

unsigned int GetPtrAddr(int* p)
{
	return (unsigned int)p;
}
pengzhixi 2014-12-31
  • 打赏
  • 举报
回复
你返回的类型要匹配啊 int* test(int*p)
luo_miao 2014-12-31
  • 打赏
  • 举报
回复
你想说的是 return *p 吧?

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧