C语言参数传递

dag617712 2015-10-08 09:27:08
#include <stdio.h>
#include <stdlib.h>

void abc(int e)
{
e = 123;
}

main()
{
auto e=456;
abc(e);
printf("%d",e);
}

这个程序我想输出的最终结果是123,请问怎么修改,谢谢!
...全文
138 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhuam 2015-10-08
  • 打赏
  • 举报
回复
abc函数改成 void abc(int &e) {e=123;} 主函数中应该是int e=456;
lm_whales 2015-10-08
  • 打赏
  • 举报
回复
C++还是C C
引用 5 楼 zhao4zhong1 的回复:
#include <stdio.h>
#include <stdlib.h>

void abc(int *e)
{
  *e = 123;
}

main()
{
   auto e=456;
   abc(&e);
   printf("%d",e);
}

++ 赵老师这个就是 C++
#include <stdio.h>
#include <stdlib.h>

void abc(int &e)//改成引用传递
{ 
   e = 123;
}

main()
{
   auto e=456;
   abc(e); //引用传递的调用方式和值传递相同
   printf("%d",e);
}

dag617712 2015-10-08
  • 打赏
  • 举报
回复
引用 2 楼 lm_whales 的回复:
int abc(int &e);
可以帮忙写一下 具体的程序么?谢谢!
赵4老师 2015-10-08
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

void abc(int *e)
{
  *e = 123;
}

main()
{
   auto e=456;
   abc(&e);
   printf("%d",e);
}

lin5161678 2015-10-08
  • 打赏
  • 举报
回复
printf("123");
lm_whales 2015-10-08
  • 打赏
  • 举报
回复
int abc(int &e);
mosquitoh 2015-10-08
  • 打赏
  • 举报
回复

#include <stdio.h>
int abc(int e);
int main(void)
{
    int e = 456;
    
    e = abc(e);
    printf("%d", e);
}
int abc(int e)
{
    int e = 123;
    return e;
}
qq_26132459 2015-10-08
  • 打赏
  • 举报
回复
要想改变实参的值,必须把实参的指针地址作为函数参数传过去,而不是单单将值传过去。否则实参不会改变。
空城丶孤人 2015-10-08
  • 打赏
  • 举报
回复
指针 或者把e设为全局变量
赵4老师 2015-10-08
  • 打赏
  • 举报
回复
对源代码后缀为.cpp的文件,才默认用C++语法编译。
dag617712 2015-10-08
  • 打赏
  • 举报
回复
引用 6 楼 lm_whales 的回复:
C++还是C C [quote=引用 5 楼 zhao4zhong1 的回复:]
#include <stdio.h>
#include <stdlib.h>

void abc(int *e)
{
  *e = 123;
}

main()
{
   auto e=456;
   abc(&e);
   printf("%d",e);
}

++ 赵老师这个就是 C++
#include <stdio.h>
#include <stdlib.h>

void abc(int &e)//改成引用传递
{ 
   e = 123;
}

main()
{
   auto e=456;
   abc(e); //引用传递的调用方式和值传递相同
   printf("%d",e);
}

[/quote] 你的程序有错,不能运行

69,371

社区成员

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

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