Part_one C/C++语言数据类型、运算符与表达式

1.0 编写第一个C++程序

1.打开Visual Studio点击"创建新项目"

2.点击"空项目",并点击"下一步"

3.设置"项目名称"并"设置地址"

4.打开项目后,右击"源文件"并选择"添加"的"新建项"

5.点击"C++文件",设置文件名称并点击"添加"

6.在"hello_word"文件下编写代码并点击运行

7.运行结果如下:

1.1 注释

作用:在代码中加一些说明和解释,方便自己和其他程序员阅读代码
两种格式:
1.单行注释: // 描述信息
    通常放在一行代码的上方或者一条语句的末尾,对该行代码说明
2.多行注释: /*描述信息*/
    通常放在一段代码的上方对该段代码做整体说明
  
  提示:编译器在编译代码时会忽略注释的内容

1.编写代码并添加注释信息

2.由于注释不参加编译,运行效果和1.1一样

3.代码如下:

#include<iostream>
using namespace std;

/*
	main是一个程序的入口,
	每个程序都必须有这么一个函数且有且仅有一个!!!
	可以对源文件下不同文件的main函数取不同名称来避免系统出错
*/

int main()
{
	//这行代码的含义是在屏幕输出:"Hello C++"
	cout << "HELLO C++ !!!" << endl;

	system("pause");

	return 0;
}

1.2 变量和常量

1.2.1 变量

给一段指定的内存空间起名,方便操作/管理这段内存
语法: 数据类型 变量名 = 初始值;

代码及效果如下:

#include<iostream>
using namespace std;

int main()
{
	//变量创建的语法
	int a = 10;
	cout << "变量a的值为:" << a << endl;
	system("pause");
	return 0;
}

1.2.2 常量

用于记录程序中不可更改的数据
C++定义常量两种方式:
1.#define宏常量,通常在函数体上方定义表示一个常量
    #define 常量名 常量值

2.const修饰的变量,通常在变量定义前加关键字const
    const 数据类型 变量名 = 变量值;

代码及效果如下:

#include<iostream>
using namespace std;

//1.#define定义宏常量
#define DAY 7

int main()
{

//2.const修饰变量
	const int a = 10;

	cout << "一周有" << DAY << "天" << endl;
	cout << "常量a的值为:" << a << endl;
	system("pause");
	return 0;
}

1.3 关键字和标识符

1.3.1 关键字

C++关键字_百度百科

关键字/标识符是C++中预先保留的单词
在定义变量或者常量时不可以使用关键字

1.3.2 标识符

C++在使用标识符(变量、常量)命名时有一套自己的规则:
   1.标识符不能是关键字
   2.标识符只能由字母、数字、下划线组成
   3.第一个字符必须为字母或下划线
   4.标识符中字母区分大小写
建议:给标识符起名时最好能够见名知意

1.4 数据类型

C++规定创建变量/常量时,必须指出相应的数据类型否则无法给变量分配合适的内存空间

1.4.1 整数型

数据类型占用空间
short(短整型)2字节
int(整型)4字节
long(长整型)Windows为4字节
long long(长长整型)8字节

结论:short < int <=long <=long long

1.4.2 sizeof关键字

可以利用sizeof关键字统计各数据类型占用内存大小
语法:sizeof(数据类型/变量)

代码及效果如下:

#include<iostream>
using namespace std;

int main()
{
	cout << "短整数型short所占空间大小为:" << sizeof(short) << endl;
	cout << "整数型int所占空间大小为:" << sizeof(int) << endl;
	cout << "长整数型long所占空间大小为:" << sizeof(long) << endl;
	cout << "长长整数型long lomg所占空间大小为:" << sizeof(long long) << endl;
	system("pause");
	return 0;
}

1.4.3 实型(浮点型)

用于表示小数
浮点型变量分为两类:
  1.单精度:float
      float 变量名 = 变量值f;
  2.双精度:double
      double 变量名 = 变量值;
C++系统默认小数为double型,在float变量值后加f表示这是一个float型实数
两者的区别在于表示的有效数字范围不同
数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节15-16位有效数字

代码及效果如下:

#include<iostream>
using namespace std;

int main()
{
	//单精度
	float f1 = 3.14f;
	//双精度
	double d1 = 0.0015926;
	cout << "f1=" << f1 << endl;
	cout << "d1=" << d1 << endl;
	system("pause");
	return 0;
}

1.4.4 字符型

ASCII码对照表-BeJSON.com

字符型变量用于显示单个字符
语法:char 变量名 = '变量值' ;

  注意1:在显示字符型变量时,用单引号将字符括起来,不能用双引号!
  注意2:单引号内只能有一个字符,不可以是字符串

C和C++中,字符型变量只占用1个字节
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII码放入到存储单元

代码及效果如下:

#include<iostream>
using namespace std;

int main()
{
	char c1 = 'a' ;
	cout << "字符型c1的值为:" << c1 << endl;
	cout << "字符型数值所占内存空间大小为:" << sizeof(char) << endl;
	cout << "字符型变量对应的ASCII值:" << (int)c1 << endl;
	system("pause");
	return 0;
}

1.4.5 转义字符

转义字符_百度百科

用来表示一些不能显示出来的ASCII字符
现阶段我们常用的转义字符有:\n  \\  \t
转义字符含义
\n换行
\t水平制表
\\

代表一个反斜线字符"\"

作用:可以整齐的输出数据

代码及效果如下:

#include<iostream>
using namespace std;

int main()
{
	//换行符:\n
	cout << "hello word\n";

	//制表符:\t
	cout << "aaaa\thello-word" << endl;
	cout << "aa\thello-word" << endl;
	cout << "aaaaaa\thello-word" << endl;

	//反斜杠:
	cout << "我要输出一个反斜线:\\" << endl;
	system("pause");
	return 0;
}

1.4.6 字符串类型

用于表示一串字符
两种风格--
C语言风格字符串:char 变量名 [] = "字符串值";
C++语言风格字符串:string 变量名  = "字符串值";

注意:
  在使用C++语言风格字符串变量时一定要加上头文件:#include<string>

代码及实现效果如下:

#include<iostream>
using namespace std;
#include<string>

int main()
{
	//C语言风格关键字
	char c1[] = "hello word!";

	//C++语言风格关键字
	string s1 = "welcome to C++";
	cout << "C语言风格关键字c1:\t" << c1 << endl;
	cout << "C++语言风格关键字s1:\t" << s1 << endl;

	system("pause");
	return 0;
}

1.4.7 布尔类型

布尔数据类型代表真或假的值;bool类型占一个字节大小
bool类型只有两个值:
  true---真(本质是1)
  false--假(本质是0)

代码及实现效果如下:

#include<iostream>
using namespace std;

int main()
{
	//1.创建bool数据类型
	bool flag = true;
	cout << flag << endl;
	flag = false;
	cout << flag << endl;

	//2.查看bool类型占用空间大小
	cout << "bool数据类型占用空间大小为:"<<sizeof(bool) << "字节" << endl;
	system("pause");
	return 0;
}

1.4.8 数据的输入

作用:用于从键盘获取数据
关键字:cin
语法:cin >> 变量

代码及实现效果如下:

#include<iostream>
using namespace std;
#include<string>
 
int main()
{
	//bool数据类型 
	bool flag = true;
	cout<<"当前bool类型的值为:"<<flag<<endl;
	cout<<"请输入bool类型的值:"<<endl;
	cin>>flag;
	cout<<"修改后bool型数据的值为:"<<flag<<endl; 
	system("pause");
	return 0;
 } 

1.5 运算符与表达式

用于执行代码的运算

1.5.1 算术运算符和算术表达式

1.5.1.1 基本的算术运算符和算术表达式

+加法运算符/正值运算符
-减法运算符/负值运算符
*乘法运算符
/除法运算符
 %取余运算符/模运算符(本质就是求余数)

代码及实现效果如下:

#include<iostream>
using namespace std;

int main()
{
	//加减乘除 取余
	int num1 = 3;
	int num2 = 10;
	int add = num1 + num2;
	int subtract  = num2 - num1;
	int multiply  = num1 * num2;
	double divide = num2 / num1;  //在C和C++中两个整数相除结果还是整数 
	int remainder = num2 % num1;
	cout <<"num1与num2相加结果为:\t"<< add <<endl;
	cout <<"num1与num2相减结果为:\t"<< subtract <<endl;
	cout <<"num1与num2相乘结果为:\t"<< multiply <<endl;
	cout <<"num1与num2相除结果为:\t"<< divide   <<endl; 
	cout <<"num1与num2取余结果为:\t"<< remainder<<endl; 

	system("pause");
	return 0;
}

1.5.1.2 强制类型转换运算符

利用强制类型转换运算符将一个表达式转换成所需类型
语法:(类型名)(表达式)  eg:
   (double)a   (int)(x+y)   (float)(5%3)

代码及实现效果如下:

#include<iostream>
using namespace std;

int main()
{
	float f1 =314.159f; 
	int num;
	num = (int)f1;
	cout<<"num=\t"<<num<<endl; 
	cout<<"num/2=\t"<<(num/2)<<endl;
	system("pause");
	return 0; 
 } 

1.5.1.3 自增、自减运算符

作用是使变量的值增1或减1
粗略地看,++i和i++的作用相当于i=i+1。但++i与i++不同之处在于++i是先执行i=i+1后,
再使用i的值;而i++是先使用i的值后再执行i=i+1
运算符示例结果
前置递增 ++ii=2 ; j=++ii=3 ; j=3
后置递增 i++i=2 ; j=i++i=3 ; j=2
前置递减 --ii=2 ; j =--ii=1 ; j=1
后置递减 i--i=2 ; j = i--i=1 ; j=2

1.5.2 赋值运算符和赋值表达式

赋值符号"="称为:赋值运算符,它的作用是将一个数据赋给一个变量。
如"a=3"的作用是执行一次赋值操作/赋值运算:把常量3赋给变量a;
也可以将一个表达式的值赋给一个变量。
运算符术语示例 & 结果
=赋值a=5;b=3
+=加等于a+=b;a=8
-=减等于a-=b;a=2
*=乘等于a*=b;a=15
/=除等于a/=b;a=1
%=取余等于a%=b;a=2

1.5.3 比较运算符

用于表达式的比较,并返回一个真值或假值
运算符术语示例结果
==等于4==30
!=不等于4!=31
<小于4<30
>大于4>31
<=小等于4<=30
>=大等于4>=31

代码及实现效果如下:

#include<iostream>
using namespace std;

int main()
{
	 int a = 10;
	 int b = 20;
	 cout << (a==b) <<endl;
	 cout << (a!=b) <<endl; 
	system("pause");
	return 0;
}

1.5.4 逻辑运算符

作用:用于根据表达式的值返回真值或假值
运算符术语示例结果
&&逻辑与a&&b同真为真,其余为假
||逻辑或a||b一真为真,全假为假
逻辑非!aa为假则!a为真;a为真则!a为假

1.5.4.1 逻辑与运算符

代码及实现效果如下:

#include<iostream>
using namespace std;

int main()
{
	int a =10;
	int b =20;
	cout <<(a&&b)<<endl;
	system("pause");
	return 0;
}

1.5.4.2 逻辑或运算符

代码及实现效果如下:

#include<iostream>
using namespace std;

int main()
{
	int a =10,b =20;
	cout<<(a||b)<<endl;
	a = 0;  b = 0;
	cout<<(a||b)<<endl;
	system("pause");
	return 0;
}

1.5.4.3 逻辑非运算符

代码及实现效果如下:

#include<iostream>
using namespace std;

int main()
{
	int a = 0;
	cout<<(!a)<<endl; 
    cout<<(!!a)<<endl;
	system("pause");
	return 0;
 } 

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

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

相关文章

基于yolov8深度学习的120种犬类检测与识别系统python源码+onnx模型+评估指标曲线+精美GUI界面目标检测狗类检测犬类识别系统

【算法介绍】 基于YOLOv8深度学习的120种犬类检测与识别系统是一款功能强大的工具&#xff0c;该系统利用YOLOv8深度学习框架&#xff0c;通过21583张图片的训练&#xff0c;实现了对120种犬类的精准检测与识别。 该系统基于Python与PyQt5开发&#xff0c;具有简洁的UI界面&a…

程计软考题2-编译、解释程序翻译阶段

(一) 编译器和解释器的工作阶段 1.编译和解释与源程序的区别 分析&#xff1a;编译和解释是语言处理的两种基本方式。 编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段&#xff0c;以及符号表管理和出错处理模块。 解释过程在词法、语…

数字经济与新质生产力:地理信息与遥感视角下的深度分析

在数字化浪潮的推动下&#xff0c;我们正见证着生产力的一次历史性飞跃。数字经济如何重塑生产力的三大要素&#xff1a;劳动对象、劳动资料和劳动者&#xff1f;让我们来深度分析数字经济如何推动新质生产力的发展。 一、数字经济与地理信息的融合 地理信息与遥感技术是数字…

【数据结构】什么是红黑树(Red Black Tree)?

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 &#x1f4cc;红黑树的概念 &#x1f4cc;红黑树的操作 &#x1f38f;红黑树的插入操作 &#x1f38f;红黑树的删除操作 结语 &#x1f4cc;红黑树的概念 我们之前学过了…

PyGWalker:让你的Pandas数据可视化更简单,快速创建数据可视化网站

1、PyGWalker应用: 在数据分析的过程中,数据的探索和可视化是至关重要的环节,如何高效地将分析结果展示给团队、客户,甚至是公众,是很多数据分析师和开发者面临的挑战,接下来介绍的两大工具组合——PyGWalker与Streamlit,可以帮助用户轻松解决这个问题,即使没有复杂的代…

cheese安卓版纯本地离线文字识别插件

目的 cheese自动化平台是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务&#xff0c;节省大量人工操作的时间。可以采用Vscode、IDEA编写&#xff0c;支持Java、Python、nodejs、GO、Rust、Lua。cheese也包含图色功能&#xff0c;识别…

HarmonyOS鸿蒙 Next 实现协调布局效果

HarmonyOS鸿蒙 Next 实现协调布局效果 ​ 假期愉快! 最近大A 的涨势实在是红的让人晕头转向&#xff0c;不知道各位收益如何&#xff0c;这会是在路上&#xff0c;还是已经到目的地了? 言归正传&#xff0c;最近有些忙&#xff0c;关于鸿蒙的实践系列有些脱节了&#xff0c;…

TCP --- 确认应答机制以及三次握手四次挥手

序言 在前一篇文章中&#xff0c;我们介绍了 UDP协议 (点击查看)&#x1f448;&#xff0c;该协议给我们的感觉就两个字 — 简单&#xff0c;只是将我们的数据进行简单的添加报头然后发送。当然使用起来虽然简单&#xff0c;但是否能送到目的地&#xff0c;那就要看网络的状态了…

深度学习——线性神经网络(一、线性回归)

目录 一、线性回归1.1 线性回归的基本元素1.1.1 术语介绍1.1.2 线性模型1.1.3 损失函数1.1.4 解析解1.1.5 随机梯度下降1.1.6 模型预测 1.2 正态分布与平方损失 因为线性神经网络篇幅比较长&#xff0c;就拆成几篇博客分开发布。目录序号保持连贯性。 一、线性回归 回归&#x…

[Linux] Linux 的进程如何调度——Linux的 O(1)进程调度算法

标题&#xff1a;[Linux] Linux 的进程如何调度——优先级与进程调度 个人主页水墨不写bug 目录 一、前言 二、将要出现的概念 1.进程调度队列 2.位图 3.进程的优先级 三、Linux进程的调度过程 1.活动队列&#xff08;*active指向的队列&#xff09; 2.过期队列&#…

LeetCode[中等] 763. 划分字母区间

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 思路 贪心…

Centos 7.9 Kubeadm安装k8s1.20.11

一、环境 主机用途192.168.76.140k8s-master1192.168.76.141k8s-node1 二、设置yum源 由于系统已经关闭&#xff0c;可以用centos9尝试 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak vi /etc/yum.repos.d/CentOS-Base.repo# 使用阿里云的y…

【动态规划-分组背包】【hard】力扣2218. 从栈中取出 K 个硬币的最大面值和

一张桌子上总共有 n 个硬币 栈 。每个栈有 正整数 个带面值的硬币。 每一次操作中&#xff0c;你可以从任意一个栈的 顶部 取出 1 个硬币&#xff0c;从栈中移除它&#xff0c;并放入你的钱包里。 给你一个列表 piles &#xff0c;其中 piles[i] 是一个整数数组&#xff0c;分…

FOC电机驱动开发踩坑记录

关键技术 SVPWM电机磁场控制电流采样park变换和Clark变换滑膜观测器&#xff08;无感FOC&#xff09; SVPWM电机磁场控制 SVPWM主要思想是通过精确的对UVW三相电流的分时控制&#xff0c;来控制转子的合成力矩&#xff0c;达到目标方向&#xff0c;常用的是6分区的设计&…

浅谈汽车智能座舱如何实现多通道音频

一、引言 随着汽车智能座舱的功能迭代发展&#xff0c;传统的 4 通道、6 通道、8 通道等音响系统难以在满足驾驶场景的需求&#xff0c;未来对于智能座舱音频质量和通道数会越来越高。接下来本文将浅析目前智能座舱如何实现音频功放&#xff0c;以及如何实现多路音频功放方案。…

C语言+单片机

今天内容有点水哈哈&#xff08;忙着练焊铁技术了嘻嘻&#xff09; C语言 简单学习了while语言以及其与for语言的区别和适用方法 .循环结构&#xff1a; 初始化语句条件判断句条件控制句 for语句 for(int1;i<100;i){执行条件} for (int i 1; i < 100; i) {printf(&quo…

leetcode每日一题day22(24.10.2)——准时到达的列车最小时速

思路&#xff1a;这种在有约束条件情况下&#xff0c;求最值或最符合要求的情况&#xff0c;首先是很容易想到&#xff0c;从时速为1开始往后找找到满足条件就输出&#xff0c;但这无疑工程量很大&#xff0c;每种可能的速度都要对列车数组进行遍历&#xff0c; 时间复杂度为C…

Stable Diffusion绘画 | 来训练属于自己的模型:LoRA模型验收

我们每次训练出来的模型&#xff0c;一般都会生成 20-30 个&#xff0c;至于哪个模型符合要求&#xff0c;较为理想呢&#xff1f; 接下来需要对每个 LoRA模型 进行逐一对比测试。 为了测试模型的泛化性&#xff0c;可选择使用一些较为特殊的提示词&#xff0c;看看各个模型对…

828华为云征文 | 云服务器Flexus X实例:向量数据库 pgvector 部署,实现向量检索

目录 一、什么是向量数据库 pgvector &#xff1f; 二、pgvector 部署 2.1 安装 Docker 2.2 拉取镜像 2.3 添加规则 三、pgvector 运行 3.1 运行 pgvector 3.2 连接 pgvector 3.3 pgvector 常见操作 四、总结 本篇文章通过 云服务器Flexus X实例 部署向量数据库 pgve…

安卓13默认使用大鼠标 与配置分析 andriod13默认使用大鼠标 与配置分析

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.彩蛋1.前言 android13里面的鼠标貌似比以前版本的鼠标小了,有些客户想要把这个鼠标改大。这个功能,android有现成的,就在这里,设置 =》无障碍 =》色彩和动画 =》 大号鼠标指针。 我们通过…