| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 931 人关注过本帖
标题:请教C语言的基础!
只看楼主 加入收藏
suand
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-23
收藏
 问题点数:0 回复次数:10 
请教C语言的基础!
这是一个单间的C语言,
#include "stdio.h"
main()
{
int a,b,c,d;
a=10;
b=a++;
c=++a;
d=10*a++;
printf("b,c,d;%d,%d,%d",b,c,d);
return 0;
}
结果是,10.12.120
但是怎么得到的这个数字,请高手说明下,本人初学C语言,不大懂!
那个a++ 得到什么?++a有是什么?
请说明下可以吗?
搜索更多相关主题的帖子: C语言 基础 
2007-06-25 21:32
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
这个``不难```从语法开始理解``你知道++运算符号的含义吗??

A==10, A++就是先使用A再给把A加1后赋值给A``也就是A++等价于先使用A再执行A=A+1,
所以B==A++=10(因为先用A,而A还没有自加1),
++A呢??就是先给A加1在使用A``也就是说先执行A=A+1再用A
所以C=++A==12(因为A先加了一次``现在又加了一次一共加了2)
10*A++呢??
当然是先求A和10的积```在让A自加1(A==13)

这就是考关于++运算符号的知识点```同理--也是一样的``

这简单吧```



女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-06-25 21:41
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 
b = a++ // a将10赋值给b后加1变为11,此时b为10

c = ++a // a赋值前加1为12,把12赋值给c

2007-06-25 21:41
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 
LS正解。

深山苦学C语言,终年不见外面世界。
2007-06-25 21:43
suand
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-23
收藏
得分:0 
呵呵,谢谢各位大哥~大姐~们,听了你们的理解后
我不知道我这样理解是不是正确。
b=a++;

d=10*a++;
那d不就相当于d=10*b吗!对不?而b=a++,那就是12。楼上所说的,在原a的基础上+1+1是不?
2007-06-25 22:52
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
LS分析 不对吧。

Fight  to win  or  die...
2007-06-25 22:57
suand
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-23
收藏
得分:0 
呵呵,斑竹LS 是什么意思哦,都说哦,是初学,很多不懂,请多谅解!
2007-06-25 23:15
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 

b = ++a b = a++:相对a来说,这句话结束,都会+1
相对b来说,++a,b+1,a++,b等于a未加1的值。

这样去理解吧!


Fight  to win  or  die...
2007-06-25 23:34
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 

总之就是b=a++,就是先把a的原值先赋给b,之后再加1;b=++a呢,就是a先自加1在赋给b.


深山苦学C语言,终年不见外面世界。
2007-06-25 23:53
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用suand在2007-6-25 22:52:36的发言:
呵呵,谢谢各位大哥~大姐~们,听了你们的理解后
我不知道我这样理解是不是正确。
b=a++;

d=10*a++;
那d不就相当于d=10*b吗!对不?而b=a++,那就是12。楼上所说的,在原a的基础上+1+1是不?

b=a++;
d=10*a++;和d=10*b不等,因为这时的a++不等于b(确切的说比b小1).


倚天照海花无数,流水高山心自知。
2007-06-25 23:55
快速回复:请教C语言的基础!
数据加载中...
 
   



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

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