| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 389 人关注过本帖
标题:俩道 C++ 运行题求解
只看楼主 加入收藏
简欢
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-9-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
俩道 C++ 运行题求解
#include<iostream>
using namespace std;
void main()
{ int i=1,j=1,k=2;
if((j++||k++)&&i++)
cout<<i<<j<<k;}
这个程序运行出来是222,我想问一下为什么j和i都自加了1,而k却没有呢?


#include<iostream>
using namespace std;
void main()
{
    int a=3,b=0;
    int *p=&a;
b=+a++;
cout<<*p<<b<<endl;
}
这个也是自加的问题,运行的结果是43,我想问为什么当给B赋值是a还是3,而指针p指向的时候就成了4了?
2014-09-19 16:03
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:10 
第一个题
#include<iostream>
using namespace std;
void main()
{ int i=1,j=1,k=2;
if((j++||k++)&&i++)  //为什么K没有增加, 这里if 语句中的(j++||k++), 因为这里j,k是或的关系。j>0直接就判断条件成立了,就没k什么事情了。所以k没有增加
cout<<i<<j<<k;}
第二题

#include<iostream>
using namespace std;
void main()
{
    int a=3,b=0;
    int *p=&a;
b=+a++;
cout<<*p<<b<<endl;
}
a=3, b=+a++ 等价于 b=b+a++, b=3,a自增变为4. int *p=&a; p是指针,它取了a的地址。输出后变为4.所以是43

想抽苏烟了。
2014-09-19 21:11
domoke
Rank: 2
等 级:论坛游民
帖 子:36
专家分:71
注 册:2013-9-11
收藏
得分:10 
同二楼,但是想指出一个小错误   =+ 和 += 是不一样的   b+=a++才等价于 b=b+a++    b=+a++等价于 b=正a++    这时候a前面的+是区分正负的
2014-09-21 11:14
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 3 楼 domoke
谢谢指正,没注意看呀

想抽苏烟了。
2014-09-21 13:41
快速回复:俩道 C++ 运行题求解
数据加载中...
 
   



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

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