C++程序基础

一般赋值语句

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//看代码写输出————一般赋值语句
int main(void) {
	int x = 3, y, z;

	x *= (y = z = 4); printf("x=%d\n", x); //x=12

	z = 2;
	x = (y = z); printf("x=%d\n", x);  //x=2
	x = (y == z); printf("x=%d\n", x); //x=1
	x = (y & z); printf("x=%d\n", x);	//x=2
	x = (y && z);	printf("x=%d\n", x);//x=1

	y = 4;
	x = (y | z); printf("x=%d\n", x); //x=6
	x = (y || z); printf("x=%d\n", x);//x=1

	x = (y == z) ? 4 : 5;
	printf("x=%d\n", x);  //x=5

	x = (y == z) ? 1 : (y < z) ? 2 : 3;
	printf("x=%d\n", x); //x=3

	return 0;


}

x=12
x=2
x=1
x=2
x=1
x=6
x=1
x=5
x=3 

  • x *= (y = z = 4); printf("x=%d\n", x);        x为3,y,z没有被初始化,执行顺序是首先执行z=4,然后y=z,最后执行x*=y。所以x=3*4=12。
  • x = (y = z); printf("x=%d\n", x);               z的值为2,执行顺序y=z=2,x=y=2,所以结果x=2
  • x = (y == z); printf("x=%d\n", x);             ==是比较,判断y与z是否相等,若相等为1,不等为0,z与y都为2,所以为1,则x=1
  • x = (y & z); printf("x=%d\n", x);              &按位与操作,一种二进制运算,它在每一对相应的二进制位上进行操作,具体来说,对于两个二进制数,它们的按位与运算是对应位都为1,结果为1,其他为0,y与z都十进制是2,则二进制是10,结果为10,输出的二进制x=10,十进制为2。
  • x = (y && z);    printf("x=%d\n", x);        &&逻辑与操作,一种在布尔逻辑或编程中用于测试多个条件是否同时成立的运算符。与按位与不同,逻辑与是对逻辑值(通常是true或false)进行操作,执行顺序y和z做逻辑与运算结果赋值给x。此时y和z的值都不是0,因此结果为1,所以x=1。
  • x = (y | z); printf("x=%d\n", x);              |  按位或操作,一种二进制运算,只要对应位中有一个为1时,结果为1,两个位都为0时,结果为0;此时y=4,二进制为0100,z为2,二进制为0010,y | z结果为0110,赋值给x,则x对应的十进制为6
  • x = (y || z); printf("x=%d\n", x);            || 逻辑或操作,是一种在布尔逻辑或编程中用于测试多个条件中是否至少有一个成立的运算符。如果两个操作符中至少有一个是true,则结果是true,如果两个操作数都是false,结果为false。此时y的值为4,z 的值为2,做逻辑或运算的结果赋值给变量x,此时y和z都不是0,因此结果为1,所以x=1。
  • x = (y == z) ? 4 : 5;    printf("x=%d\n", x);   三目运算,y与z是否相等,等于则x输出4,不等则输出5,y为4,z为2,所以不相等,所以x=5;
  • x = (y == z) ? 1 : (y < z) ? 2 : 3;     printf("x=%d\n", x);    y==z相等输出1,不等则继续判断y是否小于z,明显不相等,则继续进行判断,y=4,z=2,所以是y大于z,则输出3

总结:

==         是比较

&           按位与  二进制对应位都为1,则1,否则为0

&&         逻辑与  都不为0则为1

|            按位或   二进制对应位有一个为1,则1,全为0则0

||           逻辑或    有一个为true则为true,全为false则false

三目运算:进行判断,判断成立输出前面否则输出后面

 c++域操作符

#define _CRT_SECURE_NO_WARNINGS
//看代码写输出 —— C++域操作符
#include <stdio.h>
int value = 0; //全局变量
void printvalue() {
	printf("vlaue = %d\n", value);
}

int main() {
	int value = 0; //局部变量
	value = 1;
	//打印的是局部变量的值
	printf("value=%d\n", value); //1

	//::域操作符来直接操作全局变量 c中不支持这个操作符  cpp支持
	::value = 2;

	//打印的是全局变量的值
	printvalue(); //2
	return 0;
}

结果

value=1
vlaue = 2

 分析

  • 若文件名后缀.c,则::value = 2;报错无法运行
  • 若文件名后缀.cpp,则可以运行    在c++中可以通过域操作符::来直接操作全局变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y木子李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值