鱼C论坛

 找回密码
 立即注册
查看: 1189|回复: 5

[已解决]求助下大佬!

[复制链接]
发表于 2020-4-9 23:07:12 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# include< stdio. h>
include<  stdlib. h>
int fun(int n)
{
int * P;
P= (int * )malloc(sizeof(int));
*p=n; return * P;
}
main()
{
int a;
a=fun(10);printf("%d",a+fun(10))}
程序运行的结果是什么?
怎么来的?
最佳答案
2020-4-10 00:15:10
fun()函数传入一个参数n,返回值的大小就是n的大小。
a=fun(10)   执行完这句后 a=10
然后printf语句中输出的是   a+fun(10)   也就是10+10 结果就是20咯


注意,下次发问题的时候请把代码敲对!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-10 00:15:10 | 显示全部楼层    本楼为最佳答案   
fun()函数传入一个参数n,返回值的大小就是n的大小。
a=fun(10)   执行完这句后 a=10
然后printf语句中输出的是   a+fun(10)   也就是10+10 结果就是20咯


注意,下次发问题的时候请把代码敲对!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-10 00:36:29 | 显示全部楼层
本帖最后由 howzyao 于 2020-4-10 00:38 编辑
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdio.h>
  4. using namespace std;
  5. int fun(int n)
  6. {
  7.   int * p;
  8.   cout<<"fun中的p没有赋给左值地址:\n";
  9.   cout<<"1---p的地址:"<<p<<endl;
  10.   p= (int * )malloc(sizeof(int));
  11.   cout<<"2---p的地址:"<<p<<" 值"<<*p <<" (右值---来自强制转换)"<<endl;
  12.   *p=n;
  13.   cout<<"3---p的地址:"<<p<<" 值"<<*p<<" (右值---来自参数)"<<endl;
  14.   
  15.   cout<<"4---fun中的p,在每调用fun函数时,向调用函数传回了不同地址的p"<<endl;
  16.   
  17.   cout<<"-----------------------------------"<<endl;
  18.   return * p;
  19. }

  20.    
  21.                        
  22. int main(int argc, char *argv[])
  23. {
  24.    
  25. int a;

  26. printf("%s %d %s","a没有赋值,现在是随机值:", a ,"\n");

  27. a=fun(10);
  28. cout<<"a=fun(10)语句,由于fun返回的地址中的值,使a得到了参数10的值"<<endl;

  29. printf("%d,%s,%d", a+fun(10),"a没有被初始化,但被上一语句: a=fun(10) 所赋值,值=",a,",\n" );
  30.    
  31.      
  32.     system("PAUSE");
  33.     return EXIT_SUCCESS;
  34. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 00:40:24 | 显示全部楼层
若看得明白,能解答你的疑问,请赏个分,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 06:58:17 From FishC Mobile | 显示全部楼层
sunrise085 发表于 2020-4-10 00:15
fun()函数传入一个参数n,返回值的大小就是n的大小。
a=fun(10)   执行完这句后 a=10
然后printf语句中输 ...

我用的扫描王,扫描出来的,下次一定!还有,我想问下,给指针p开辟一个空间在这里有用吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 08:42:02 | 显示全部楼层
Zichenya 发表于 2020-4-13 06:58
我用的扫描王,扫描出来的,下次一定!还有,我想问下,给指针p开辟一个空间在这里有用吗?

没太大关系。在函数中用指针也好,用变量也罢。结果是一样的。反正你返回的是值,而非指针。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-3 15:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表