| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1784 人关注过本帖
标题:作用域训练出了点状况
只看楼主 加入收藏
暴君Dentiny
Rank: 2
等 级:论坛游民
帖 子:132
专家分:43
注 册:2019-5-6
结帖率:89.47%
收藏
已结贴  问题点数:20 回复次数:8 
作用域训练出了点状况
主要是为什么x的最终值是100,循环不是小于100吗,再有x6最终值是101;好像并没有增加x6的值



程序代码:
#include<stdio.h>
int main()
{
    int x = 10;
    printf("x1的值等于=%d\n", x);
    {
        int x = 70;
        printf("x2的值等于 = % d\n", x);
    }
    printf("x3的值等于 = % d\n",x);
    while (x++ < 100)
    {
        printf("x4的值等于=%d\n", x);
    }
    printf("x6的值等于 = % d\n", x);
    return 0;
}
/*
x1的值等于=10
x2的值等于 =  70
x3的值等于 =  10
x4最终等于100
x6最终等于101
*/
搜索更多相关主题的帖子: main 作用域 int printf 等于 
2019-09-03 13:56
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10606
专家分:43182
注 册:2014-5-20
收藏
得分:7 

x后++
2019-09-03 14:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:7 
while (x++ < 100)
中 x++ 是个子表达式,是“x++”这个表达式的评估值等于100(那么x的评估值就可能是101),而非“x”的评估值等于100。

因为某些破烂教材上喜欢将 x++ 错误解释成 先使用x再自增x 等等,所以令那些破烂学生误以为比较的是 x。
x++ 正确解释:表达式返回x原先的值,副作用是x自增。
2019-09-03 14:14
暴君Dentiny
Rank: 2
等 级:论坛游民
帖 子:132
专家分:43
注 册:2019-5-6
收藏
得分:0 
回复 3楼 rjsp
就是说先执行x<100,返回第二次循环的时候是x++对吗

技术至上,学无止境
2019-09-03 14:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 4楼 暴君Dentiny
不是!
“x++ < 100”此句的意思是“x++”与100比较,而非x与100比较。
正因为你错误地认为是x与100比较,所以才会错误地认为x终值是100。
2019-09-03 14:32
暴君Dentiny
Rank: 2
等 级:论坛游民
帖 子:132
专家分:43
注 册:2019-5-6
收藏
得分:0 
回复 5楼 rjsp
但是(x++)<100最终值也是100-1啊这好像没什么问题・_・?
而且后面x6也加1了这是什么回事

技术至上,学无止境
2019-09-03 14:36
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10606
专家分:43182
注 册:2014-5-20
收藏
得分:0 
while (x++ < 100) 有两步:
1、判断x<100
2、++x
2019-09-03 15:32
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:7 
能这样理解么:x等于99的时候最后一次循环,循环结果是100,然后判断x<100,为假,但是x还是加了1就是101。
2019-09-03 16:27
暴君Dentiny
Rank: 2
等 级:论坛游民
帖 子:132
专家分:43
注 册:2019-5-6
收藏
得分:0 
回复 8楼 bcbbcclbbc
谢谢,还是你说的通俗易懂

技术至上,学无止境
2019-09-03 17:25
快速回复:作用域训练出了点状况
数据加载中...
 
   



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

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