| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2252 人关注过本帖
标题:一个简单的函数程序
只看楼主 加入收藏
xi2254601605
Rank: 2
等 级:论坛游民
帖 子:56
专家分:19
注 册:2018-2-13
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:12 
一个简单的函数程序
图片附件: 游客没有浏览图片的权限,请 登录注册

不知道哪错了,照着打的
搜索更多相关主题的帖子: 函数 
2018-02-25 14:07
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
收藏
得分:0 
j和h没有初始化,而且swap在这里起不到作用的
2018-02-25 14:29
马尔代夫人
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2018-2-25
收藏
得分:0 
swap里的变量所占的内存当函数运行结束后就会被释放,所以根本无法将交换后的值返回给主函数,可以通过地址来交换两个变量的值。
2018-02-25 15:20
will丶
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:117
专家分:443
注 册:2015-10-19
收藏
得分:5 
你这个函数写的,看的出你的函数调用,参数传递,参数类型都没搞懂
C语言中整型变量的形式参数传递的是值而不是地址,也就是形式参数实际上是复制了实际参数的值进入函数运算的,而被复制的实际参数的值并没有改变。
实参进行函数初始化,函数并没有访问调用传递的实参本身,因而也不会修改实参的值
程序代码:
#include<stdio.h>  
void swap(int *j, int *h)  //利用指针值交换实现
{  
    int d;  
    d=*j;  
    *j=*h;  
    *h=d;  
}  
int main()  
{  
    int j=1,h=2;  
    swap(&j,&h);  
    printf("j=%d,h=%d",j,h);  
    return 0;  
} 

腾空类星陨,遥望若花生。
2018-02-25 16:47
Jeyyion_han
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:207
专家分:301
注 册:2018-1-22
收藏
得分:0 
程序代码:
#include<stdio.h>  
void swap(int *j, int *h)  //利用指针值交换实现,不然实现不了数值的交换,你的j和h没有初始化
{  
    int d;  
    d=*j;  
    *j=*h;  
    *h=d;  
}  
int main()  
{  
    int j=1,h=2;  
    swap(&j,&h);  
    printf("j=%d,h=%d",j,h);  
    return 0;  
}
2018-02-25 17:53
Jeyyion_han
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:207
专家分:301
注 册:2018-1-22
收藏
得分:0 
程序代码:
#include<stdio.h>  
void swap(int *j, int *h)  //利用指针值交换实现,不然实现不了数值的交换,你的j和h没有初始化
{  
    int d;  
    d=*j;  
    *j=*h;  
    *h=d;  
}  
int main()  
{  
    int j=1,h=2;  
    swap(&j,&h);  
    printf("j=%d,h=%d",j,h);  
    return 0;  
}
2018-02-25 17:53
xi2254601605
Rank: 2
等 级:论坛游民
帖 子:56
专家分:19
注 册:2018-2-13
收藏
得分:0 
回复 4楼 will丶
您能解释一下void swap(int *j, int *h)这一行我什么要加“*”吗?
2018-02-26 14:22
yanzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:104
专家分:372
注 册:2017-2-7
收藏
得分:0 
回复 7楼 xi2254601605
形参你可以理解为复制的另一个东西,他们在函数内进行交换,但是原来的值没有改变。而传递地址的话,通过地址指向的值交换,则可以实现交换。你百度一下形参、实参、传值 这方面就懂了
2018-02-26 14:31
xi2254601605
Rank: 2
等 级:论坛游民
帖 子:56
专家分:19
注 册:2018-2-13
收藏
得分:0 
回复 8楼 yanzy
形参和实参我懂,问题就是void swap(int *j, int *h)这个“*”的作用是什么
2018-02-26 20:02
will丶
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:117
专家分:443
注 册:2015-10-19
收藏
得分:0 
回复 7楼 xi2254601605
(*j)操作是这样一种运算,返回j的值作为地址的那个空间的取值。
指针了解一下

腾空类星陨,遥望若花生。
2018-02-27 15:51
快速回复:一个简单的函数程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067449 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved