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++中可以通过域操作符::来直接操作全局变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/596823.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET网上图书订阅系统的设计

摘 要 网上图书订阅系统基于 Microsoft SQL Server 2000和ASP.NET平台&#xff0c;以C#为编程语言开发,实现了网上图书预订和借阅&#xff0c;订阅信息查询&#xff0c;图书和用户信息的修改&#xff0c;借阅排行和新到图书的查询等功能&#xff0c;这样不但可将管理员从繁重…

Linux基础之makefile/make

目录 一、背景 二、makefile和make的讲解 2.1 使用方法 2.2 伪目标文件 2.3 文件的属性以及属性的更新 2.4 makefile的自动推导 一、背景 这里会提及为什么要使用makefile和make&#xff0c;以及他们是什么和作用。 会不会写makefile&#xff0c;从一个侧面说明了一个人是…

宝兰德通过广东教育行业信创适配认证,拓展教育信创生态圈

近日&#xff0c;由宝兰德自主研发的多款中间件产品通过广东省教育行业信创适配中心的适配测试。测试表明&#xff0c;宝兰德四款中间件产品&#xff08;分布式缓存软件V3.0、应用服务器软件V9.5、消息中间件软件 V2.1、Web服务器软件V3.1&#xff09; 与当前主流国产操作系统统…

memory consistency

memory consistency model 定义了对于programmer和implementor来说&#xff0c;访问shared memory system的行为&#xff1b; 对于programmer而言&#xff0c;他知道期望值是什么&#xff0c; 知道会返回什么样的数据&#xff1b;&#xff1b; 对于implementro而言&#xff0c;…

数据结构——链表专题1

文章目录 一、移除链表元素二、反转链表三、合并两个有序链表四、链表的中间节点五、环形链表的约瑟夫问题六、分割链表 一、移除链表元素 原题链接&#xff1a;移除链表元素 一个解法是遍历原链表&#xff0c;将与val相等的结点抛弃&#xff0c;链接后一个结点 另一个解法是…

corefBERT论文阅读

CorefBERT是清华大学团队发表的&#xff0c;继SpanBERT之后另一针对共指消解的BERT模型。共指消解任务对于文本理解、智能问答等其他NLP子任务起到至关重要的作用。 为了提高语言模型的共指推理能力&#xff0c;一个简单的解决方案是使用有监督的共指解析数据在bert等模型进行…

论文笔记ColdDTA:利用数据增强和基于注意力的特征融合进行药物靶标结合亲和力预测

ColdDTA发表在Computers in Biology and Medicine 的一篇一区文章 突出 • 数据增强和基于注意力的特征融合用于药物靶点结合亲和力预测。 • 与其他方法相比&#xff0c;它在 Davis、KIBA 和 BindingDB 数据集上显示出竞争性能。 • 可视化模型权重可以获得可解释的见解。 …

Linux网络部分——DNS域名解析服务

目录 1. 域名结构 2. 系统根据域名查找IP地址的过程 3.DNS域名解析方式 4.DNS域名解析的工作原理【☆】 5.域名解析查询方式 6.搭建主从DNS域名服务器 ①初始化操作主服务器和从服务器&#xff0c;安装BIND软件 ②修改主服务器的主配置文件、区域配置文件、区域数…

【c1】数据类型,运算符/循环,数组/指针,结构体,main参数,static/extern,typedef

文章目录 1.数据类型&#xff1a;编译器&#xff08;compiler&#xff09;与解释器&#xff08;interpreter&#xff09;&#xff0c;中文里的汉字和标点符号是两个字节&#xff0c;不能算一个字符&#xff08;单引号&#xff09;2.运算符/循环&#xff1a;sizeof/size_t3.数组…

基于java的CRM客户关系管理系统的设计与实现(论文 + 源码 )

【免费】基于Java的CRM客户关系管理系统的设计和实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89273409 基于Java的CRM客户关系管理系统的设计与实现 摘 要 随着互联网的高速发展&#xff0c;市场经济的信息化&#xff0c;让企业之间的竞争变得&#xff0…

复写零(双指针)

下面的解法需要手动画图&#xff0c;举例去体会&#xff0c;只有自己手动去做了&#xff0c;才会有所收获。 class Solution {public void duplicateZeros(int[] arr) {int n arr.length;//先找到最后一个元素的位置;//至于为什么要直接先设dest 为-1&#xff0c;这是经过研究…

CNN笔记详解

CNN(卷积神经网络) 计算机视觉&#xff0c;当你们听到这一概念的是否好奇计算机到底是怎样知道这个图片是什么的呢&#xff1f;为此提出了卷积神经网络&#xff0c;通过卷积神经网络&#xff0c;计算机就可以识别出图片中的特征&#xff0c;从而识别出图片中的物体。看到这里充…

分布式与一致性协议之ZAB协议(四)

ZAB协议 ZooKeeper是如何选举领导者的。 首先我们来看看ZooKeeper是如何实现成员身份的&#xff1f; 在ZooKeeper中&#xff0c;成员状态是在QuorumPeer.java中实现的&#xff0c;为枚举型变量 public enum ServerState { LOOKING, FOLLOWING, LEADING, OBSERVING }其实&…

为何美国多IP服务器是全自动内容采集站的最佳选择?

为何美国多IP服务器是全自动内容采集站的最佳选择? 在建设全自动内容采集站时&#xff0c;选择合适的服务器至关重要。而在众多选项中&#xff0c;美国多IP服务器被认为是最佳选择&#xff0c;究竟为何呢?本文将从多个方面进行深入探讨。 为何美国多IP服务器是全自动内容采集…

分享8000网剧资源

兄弟们&#xff0c;前段时间搞短剧&#xff0c;收集了8500多部网剧资源。搞了整整两个月就赚3块两毛八&#xff0c;电费都不够。还不如进厂打螺丝。果断放弃这项目。 资源在手里面也没啥用。分享出来&#xff0c;大家看着玩。 有其他好的网络项目也可以分享分享。也可也一起…

真希望我父母读过这本书的笔记(二)

系列文章目录 真希望我父母读过这本书的笔记&#xff08;一&#xff09; 真希望我父母读过这本书的笔记&#xff08;二&#xff09; 文章目录 系列文章目录PART 5 培养心理健康的孩子亲子关系决定心理健康互动及来回交流如何开始交流互看游戏交流恐惧症 若遇棘手之际&#xff0…

9.Admin后台系统

9. Admin后台系统 Admin后台系统也称为网站后台管理系统, 主要对网站的信息进行管理, 如文字, 图片, 影音和其他日常使用的文件的发布, 更新, 删除等操作, 也包括功能信息的统计和管理, 如用户信息, 订单信息和访客信息等. 简单来说, 它是对网站数据库和文件进行快速操作和管…

[Flutter]创建一个私有包并使用

在Flutter中创建一个自己的私有组件&#xff08;通常称为包或库&#xff09;&#xff0c;并通过Dart的包管理工具pub进行使用。 一、创建一个新的Flutter包 1.使用命令行创建 使用Flutter命令行工具来创建一个新的包&#xff1a; $ flutter create --templatepackage my_pri…

嵌入式复习重点

嵌入式系统有多种表现形式&#xff0c;包括计算机MCU、SOC片上系统、SOPC片上系统、GPU和FPGA等。 MCU(微控制器): 是最基本也是最常见的嵌入式系统形式,是集成了CPU、ROM、RAM、IO口、定时器、中断控制器等组件的单一芯片。MCU广泛用于电器电子产品的控制。SoC(系统片上芯片):…

P8800 [蓝桥杯 2022 国 B] 卡牌

P8800 [蓝桥杯 2022 国 B] 卡牌 分析 “最多” -- 二分 1.二分区间&#xff08;凑齐的卡牌套数&#xff09;&#xff1a; l&#xff1a;a[]min&#xff1b;r&#xff1a;(a[]b[])max 2.check(x)&#xff1a; &#xff08;1&#xff09;for循环内&#xff1a; 判断x - a[i…
最新文章