C++数据类型和变量

本文详细介绍了C++中的基本数据类型,包括整型、浮点型、字符型、布尔型及其取值范围,以及sizeof运算符的用法。同时,阐述了变量的定义、赋值、作用域,并通过示例说明了标识符的规则。此外,还讲解了变量的交互,如cin和cout的使用,以及算术、赋值、比较和逻辑运算符的运用。内容涵盖了C++初学者应掌握的基础知识。
摘要由CSDN通过智能技术生成

一、数据类型

数据就类似于衣服需要分类存放管理,不同的数据要存放在不同的空间(变量)里。

1.整型

类型存储需求取值范围
short2字节-32,768 ~ 32,767
int4字节–2,147,483,648 ~2,147,483, 647
longWindows4字节,Linux4字节(32位),8字节(64位)–2,147,483,648 ~2,147,483, 647
long long8字节–9,223,372,036,854,775,808 ~9,223,372,036,854,775,807

区别:取值范围不同,所占的空间也不一样。

2.浮点型

数据类型存储需求取值范围
float4字节7位有效数字
double8字节15~16位有效数字

一般情况下,double 最常用;float 型的数值有一个后缀“f”,没有后缀的浮点数默认为 double 型。
在这里插入图片描述我在Visual Studio2019中输出一个小数,默认会显示出6位有效数字。

		//科学计数法 
		float a = 2e1; // 2 * 10 ^ 1   e后面为正数就代表:e前数字*10^n(n代表e后面的数)
		cout << "a: " << a << endl; //输出:a: 20
		float b = 2e-1; // 2 * 0.1 ^ 1  e后面为负数就代表:e前数字*0.1^n(n代表e后面的数)
		cout << "b: " << b << endl;//输出:b: 0.2 科学计数法也可以表示小数

3.字符型

是指由单引号括起的单个字符

类型存储需求取值范围
char1 字节–128 ~ 127
//字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元

char a = 'a';
cout << (int)a << endl; //97

4.布尔型

bool类型,只要是非0的值都代表true

数据类型类型存储需求结果真结果假
bool1字节true(1)false(0)

5.sizeof

作用:查看数据类型所占内存大小
语法: sizeof( 数据类型 / 变量名)

	short num1 = 10;
	int num2 = 10;
	long num3 = 10;
	long long num4 = 10;
	cout << "1、整型所占内存空间为: " << endl;
	cout << "short 类型所占内存空间为: " << sizeof(short) << endl;
	cout << "int 类型所占内存空间为: " << sizeof(int) << endl;
	cout << "long 类型所占内存空间为: " << sizeof(long) << endl;
	cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;
	cout << "num1 类型所占内存空间为: " << sizeof(num1) << endl; //等价于第6行
	cout << "num2 类型所占内存空间为: " << sizeof(num2) << endl; //等价于第7行
	cout << "num3 类型所占内存空间为: " << sizeof(num3) << endl;//等价于第8行
	cout << "num4 类型所占内存空间为: " << sizeof(num4) << endl;//等价于第9行


	cout << "\n2、浮点型所占内存空间为: " << endl;
	cout << "float 类型所占内存空间为: " << sizeof(float) << endl;
	cout << "double 类型所占内存空间为:  " << sizeof(double) << endl;

	cout << "\n3、字符型" << endl;
	cout << " char类型所占内存空间为 " << sizeof(char) << endl;

	cout << "\n4、布尔类型" << endl;
	cout << "bool类型所占内存空间为  " << sizeof(bool) << endl;

在这里插入图片描述

二、变量

变量,顾名思义“可变的量,简称变量”。对变量的操作只有两种,读和写。
语法:数据类型 变量名 = 初始值;

1.标识符

什么是标识符?
标识符是赋予变量、类和方法的名称
标识符必须以字母、下划线开头
标识符只能由字母、数字、下划线组成
标识符对大小写敏感
在定义变量的名称时需要注意:
变量名要做到见名知意,尽量采用英文单词,尽量采用驼峰命名法
变量名只能是字母和数字或者下划线组成。并且只能以字母或者下划线开头。
变量名要避开关键字。

2.变量的定义与赋值

#include <iostream>
using namespace std;

int main() {
	int a = 10; //定义a变量并且赋上初始值10
	string name = "小明";//定义name变量并且赋上初始值为小明



	cout <<"姓名:" << name <<",年龄:" << a << endl;//输出:姓名:小明,年龄:10
	system("pause");


	return 0;
}

注意:
定义变量时 要使用类型名打头(用于区分不同的类型),后面跟变量名称
“=”并不是相等运算符,而是赋值运算符,在上面代码中它表示将右侧的10写入变量 a中
C++在创建变量时,必须给变量一个初始值,否则会报错

3.变量作用域

作用域是程序的一个区域

  1. 局部变量: 在代码块内部声明的变量。
  2. 全局变量: 在所有函数外部声明的变量。

1、 局部变量: 在函数或一个代码块内部声明的变量,只能在函数内部或者代码块内部的语句使用

#include <iostream>
using namespace std;
 
int main ()
{
  //局部变量声明
  int a, b;
  int c;
 
  //赋值
  a = 10;
  b = 20;
  c = a + b;
 
  cout << c;
 
  return 0;
}

2.全局变量:在整个页面都可以使用。

#include <iostream>
using namespace std;
 
// 全局变量声明
int c;
 
int main ()
{
  // 局部变量声明
  int a, b;
 
  //赋值
  a = 10;
  b = 20;
  c = a + b;
 
  cout << c;
 
  return 0;
}

4.指出下图中哪些变量名是错误的

在这里插入图片描述

5.常量

常量是一个固定的值

定义常量两种方式

  1. #define 宏常量
    语法:#define 常量名 常量值
    例子:#define a 3.14
    如果强制a为其他数,会报如下图错误:

  2. const修饰的变量
    语法:const 数据类型 常量名 = 常量值
    例子:const int a= 12;

三、交互

上面的案例都是输出数据,如果需要接收内容怎么办?
1.关键字:cin
语法: cin >> 变量
在这里插入图片描述2.练习:从控制台输入一个名字,在名字后追加三个字”你很棒”,再接收从控制台输入的年龄和成绩进行输出。

	string name = "";
	int age = 0;
	double score = 0;
	cout << "请输入一个名字:" << endl;
	cin >> name;
	name = name + "你很棒!";
	cout << "名字:" << name << endl;
	cout << "请输入年龄:" << endl;
	cin >> age;
	cout << "年龄:" << age << endl;
	cout << "请输入成绩:" << endl;
	cin >> score;
	cout << "成绩:" << score << endl;

四、运算

1. 算术运算符

数学运算 y=5,下面的表格解释了这些算术运算符的应用方式。

运算符描述示例结果
+x=y+2x=7
-x=y-2x=3
*x=y*2x=10
/x=y/2x=2.5
%求余数(保留整数)x=y%2x=1
++累加X=++Yx=6
递减X=- -yx=4

注意:++在前,先进行++,再计算表达式; ++在后, 先计算表达式,后进行++

	int a = 5;
	int b = 3;
	
	cout << a + b << endl; //1.加法
	cout << a - b << endl; //2.减法
	cout << a * b << endl; //3.乘法
	//4.除法
	cout << a / b << endl; //除法(两个整数做相除运算,结果还是整数)
	cout << b / a << endl; //为零,不保留小数部分
	//cout << 5 / 0 << endl; //除数不可以为零,会报错!
	cout << 0.4 / 0.21 << endl; //两个小数相除,运算结果可以是小数
	
	//5.求余数:只有整型才能进行取余
	cout << 5 % 2 << endl;
	cout << 2 % 5 << endl;//输出2(求余数前面的数小,则结果为前面的数)
	//cout << 10 % 0 << endl;//不能对零求余或者除零!!!
	//cout << 0.5 % 0.25 << endl;//两个小数不可以取余!!!

	//6.++在前(前置递增)和++在后(后置递增)的区别:
	//前置递增:先进行++,再计算表达式
	int a2 = 10;
	int b2 = ++a2 * 10;
	cout << " \n前置递增a2= " << a2 << endl;//前置递增a2= 11
	cout << "前置递增b2= " << b2 << endl;//前置递增b2= 110
	//后置递增:先计算表达式,后进行++
	int a3 = 10;
	int b3 = a3++ * 10; //先让a3的原始值10乘上10 得100赋给b3,所以打印b3为100;计算完表达式100后,才让a3进行+1的操作,等于11
	cout << " \n后置递增a3= " << a3 << endl;//后置递增a3= 11
	cout << "后置递增b3= " << b3 << endl;//后置递增b3= 100

2.赋值运算符

运算符描述简化写法等价于
=赋值a=5a=5
+=加等a + = 5a=a+5
-=减等a - = 5a = a - 5
*=乘等a * = 5a = a * 5
/=除等a / = 5a = a / 5
%=余等a % = 5a = a % 5
	int a = 10;
	a = 20;//赋值
	cout << a << endl;
	a += 10;//加等
	cout << a << endl;
	a -= 10;//减等
	cout << a << endl;
	a *= 10;//乘等
	cout << a << endl;
	a /= 10;//除等
	cout << a << endl;
	a %= 10;//余等
	cout << a << endl;

3.比较运算符

用于测定变量或值是否相等,并返回一个bool值

运算符描述示例结果
==相等于1== 2false
!=不等于1 != 2true
<小于2< 1false
>大于2 > 1true
<=小于等于2 <= 1false
>=大于等于2 >= 1true

4.逻辑运算符

用于测定变量或值之间的逻辑,返回bool值

运算符 描述示例 结果
&& and(5<10 && 3>1) true
|| or (5==5 || 3==5) false
! not !(5 == 3)true
	int a = 0;
	int b = 0;
	cout << (a && b) << endl;//输入0
	

&& 全是真,否则为假 。
|| 有一个真,则结果为真
!不等于。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

1024节

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

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

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

打赏作者

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

抵扣说明:

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

余额充值