一些DuangDuang的C++题目(仅供娱乐)

1.1,若x,y,t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为(选C)
A,不定值 B,4 C,3 D,1

对于这道题,可以将t看做bool类型的变量,这就好说了,当编译器执行完++x后,因为整个式子是‘或’的关系,所以可以直接判断整个式子为真(因为++x非0),这就是短路求值,因此++y不执行所以选C

ps:如果问t的值,因为是真,所以为1

2.关于指针的小问题:*p++,*(p++),*p
不多说一切都在代码中:

#include <iostream>
using namespace std;

int main(){
    char a[]="Python";  
    char *b=a;

    cout<<b<<endl;  
    cout<<*b++<<endl;
    cout<<*b<<endl;
    system("pause");
}
//结果是
Python
p
y

实际上我感觉*p++,*(p++)的效果是一样的(++的运算优先级比较高)但是就像i++和++i的问题一样*p++是先返回自身的所指的值的对象,然后再执行++操作

#include <iostream>
using namespace std;

int main(){
    char a[]="Python";  
    char *b=a;

    cout<<b<<endl;  
    cout<<*(++b)<<endl; 
    cout<<*b<<endl;
    system("pause");
}
输出:
Python
y
y

这下应该明白点了吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值