当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 14 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-21 22:15 

注册: 2011-05-21 19:35
帖子: 95
送出感谢: 15
接收感谢: 0 次
代码如下:
代码:
#include <stdio.h>
void increment(int x)
{
        x = x + 1;
}

int main(void)
{
        int i = 1, j = 2;
        increment(i); /* i now becomes 2 */
        increment(j); /* j now becomes 3 */
        printf("%d:%d\n", i,j);
        return 0;

书上的例子我想得到的结果如注释i now becomes 2 */ j now becomes 3 可结果是1,2;是因为increment后没有把i何j重新赋值给i,j吗?
还是increment没有起作用啊?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-21 22:37 
头像

注册: 2008-01-22 23:24
帖子: 773
地址: 三亚
送出感谢: 1
接收感谢: 15
increment函数调用是 传值调用。要达到你的目的,你得传指针。


_________________
牛牛博客
linux 系统中 Chrome 地址栏输入卡顿的解决方法
Linux 下 MPV 和 VLC 播放器 VAAPI 显卡加速对比
---
using : openSUSE 13.2 ( 3.16.6-2 x86_64 ) , KDE 4.14.2


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-21 22:41 
头像

注册: 2008-07-24 11:33
帖子: 4793
地址: 郑州
送出感谢: 4
接收感谢: 92
代码:
void increment(int *x)
{
        *x = *x + 1;
}


_________________
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 7:54 
头像

注册: 2011-04-26 23:39
帖子: 162
送出感谢: 0 次
接收感谢: 0 次
什么破书!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 9:54 

注册: 2007-12-05 10:57
帖子: 1003
地址: 金山
系统: ubuntu14.04
送出感谢: 13
接收感谢: 62
i,j定义在increment(int x)函数外面, increment(int x)函数作用不到i 和 j

代码:
什么破书!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 10:50 
头像

注册: 2011-08-17 12:54
帖子: 287
送出感谢: 0 次
接收感谢: 4
什么破书!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 11:14 
头像

注册: 2010-11-04 21:50
帖子: 75
送出感谢: 0 次
接收感谢: 0 次
形参和实参的区别


_________________
简单一点,再简单一点,那就是生活............


页首
 用户资料  
 
8 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 11:20 
头像

注册: 2011-05-02 19:08
帖子: 583
系统: ubuntu 12.04
送出感谢: 2
接收感谢: 41
引用:
什么破书!

:em20


页首
 用户资料  
 
9 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 11:51 
头像

注册: 2011-11-26 11:44
帖子: 998
地址: ★光坂高校文艺部★
送出感谢: 3
接收感谢: 12
复制不会改变参数本身 请善用&,如果可以请加const


_________________
openSUSE+KDE
我用A卡,不曾杯具
驱动开源之不提倡者
AMD_N930+AMD_HD5470+AMD_M880G(3A党)
Linux就是2B(NB的架构+SB的驱动)
子曰:写C时适当d "断行" || "缩进" || "空格" == "注释"


页首
 用户资料  
 
10 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 12:09 
头像

注册: 2010-04-10 16:14
帖子: 2903
系统: Arch Linux
送出感谢: 8
接收感谢: 69
牵牛星 写道:
复制不会改变参数本身 请善用&,如果可以请加const

C没有引用吧……


_________________
dz,U,EIS. cies.
[email protected]
小香猪杀手@cc98.org


页首
 用户资料  
 
11 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 12:34 
头像

注册: 2010-04-23 20:40
帖子: 1950
地址: 浙江·杭州
系统: Arch Linux
送出感谢: 2
接收感谢: 31
希望书后面讲到:以上代码是不能达到预期结果的,因为……


_________________
我是 Giumo Clanjor(哆啦比猫/兰威举)
Where there is a hacker, there is art. | Develop for Developers. (C & perl5)
博客 | Clanjor Prods.
类 C 语言到 brainfuck 编译器


页首
 用户资料  
 
12 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 12:35 
头像

注册: 2011-11-26 11:44
帖子: 998
地址: ★光坂高校文艺部★
送出感谢: 3
接收感谢: 12
susbarbatus 写道:
牵牛星 写道:
复制不会改变参数本身 请善用&,如果可以请加const

C没有引用吧……

嗯 C没学好 :em06


_________________
openSUSE+KDE
我用A卡,不曾杯具
驱动开源之不提倡者
AMD_N930+AMD_HD5470+AMD_M880G(3A党)
Linux就是2B(NB的架构+SB的驱动)
子曰:写C时适当d "断行" || "缩进" || "空格" == "注释"


页首
 用户资料  
 
13 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-22 12:39 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
该死……给个函数返回值不就行了吗? :em20
其实,我想这书出这题目,无非是想告诉大家变量的作用域而已。 :em06


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
14 楼 
 文章标题 : Re: [求助]一段简单的C代码 为啥得不到预期的结果~
帖子发表于 : 2012-04-23 13:35 

注册: 2012-01-29 13:23
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
代码:
#include <stdio.h>
int increment(int x)
{
    return x+1;         
}

int main(void)
{
    int i = 1, j = 2;
    i= increment(i); /* i now becomes 2 */
    j=increment(j); /* j now becomes 3 */
    printf("%d:%d\n", i,j);
    return 0;
}

这样成功了


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 14 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 0 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译