C++变量

  • 1.C++ 命名规则
  • 2.C++ 命名规范
  • 3.C++ 数据类型
    • sizeof ()
  • 4.声明和使用变量
    • 4.1使用整型变量
    • 4.2使用单精度浮点型变量
    • 4.3使用双精度浮点型变量
  • 5.附送-cout 设置宽度,对齐方式
  • 6.算术运算符和表达式
    • 6.1除法、取余
    • 6.2自加、自减
  • 7.强制类型转换

《老九学堂C++课程》《C++ primer》学习笔记。《老九学堂C++课程》详情请到B站搜索《老九零基础学编程C++入门》

-------------简单的事情重复做,重复的事情用心做,用心的事情坚持做(老九君)---------------

程序员通过指令控制计算机
指令和数据在存放在内存中–寄存器,读写速度块。
一般说的内存条,内存条RAM。
内存的基本单位是bit。
变量:计算机中一块特定的内存空间

通过变量的名字快速找到变量,C++中使用命名空间(namespace)来避免重名问题。

1.C++ 命名规则

  1. 首个字符:字母,下划线
  2. 其他字符:字母,下划线,数字
  3. 变量名不能是关键字/保留字

关键字:C++编译器预留出来的76个单词,用户变量名不能与之相同。在IDE中会以特殊的颜色显示出来,例如:int,calss,double

2.C++ 命名规范

一些命名虽然不会有语法错误,但是不好。一个好的程序员,需要掌握一定的命名规范。

  1. 不要使用拼音
  2. 不要使用单个英文单词
  3. 使用有含义的英文单词,注重日常积累;mokey_sun vs houzi_sun

1.本地变量:小写,下划线连接
2.全局变量:以g_作为前缀,建议尽量少用全局变量
3.预处理指令: #defined 后全大写,不加语句结束符号;
4.函数名:单词首字母大写,无下划线连接
5.命名空间名字:全小写
6.类名称:单词首字母大写,无下划线连接
7.注释:文档注释,在文件的开头,包括版本,许可,作者,日期,功能;函数注释,注释于函数之前,描述函数功能以及用法‘
8.括号:大括号放在函数,类名称的下一行

3.C++ 数据类型

(20201106-25 数据类型小节)
–数值型
----整型-int, short, long, long long, bool, long bool
----非整型-float, double long double
–非数值型-string,

数据类型 类型符号说明符 位数 取值范围
整型 int 32位-4个字节
短整型 short int 16位-2个字节
长整形 long int 32位(用int 和long么啥区别)
长整形 long long 64位(C++11的标准)
单精度浮点型 float 32位
双精度浮点型 double 64位(存储位数较多的小数)
字符型 char 8位(C++中隶属于整型) [-128,127]

英文字符用char,中文字符要用W char(宽字符)

c++ 中的其他常用数据类型: ,枚举类型,自定义类型,指针类型(少用指针,多用引用),空类型(void)

size_t # 其实是一个无符号的整形,通过别名定义出来的

typedef unsigned int size_t

输出int 数据类型的上界 INT_MAX:

INT_MAX输出报错的话,可以引入一个头文件

# include <climits>

INT_MAX其实是一个宏定义常量,标识符号是一个

#define INT_MAX 21247XXXXX //

sizeof ()

用来测量数据类型的长度,单位是字节。c++中默认的小数是double型,后面+ 一个f变成浮点型.

#include <iostream>
using namespace std;
int main(){// sizeof 用来测量数据类型的长度cout << sizeof(double) << endl;cout << sizeof(long double) << endl;cout << sizeof(3.14) << endl;cout << sizeof(3.14f) << endl;return 0;
}

4.声明和使用变量

变量声明即定义一个变量,声明的格式如下。可以在声明的同时赋初值(建议使用这种方式);也可以仅声明,后面再赋值。(变量第一次被赋予值的操作叫变量的初始化)

数据类型 变量名; // 仅声明
数据类型 变量名=value; //声明并初始化

4.1使用整型变量

一条声明语句可以声明多个相同类型的变量,编码规范建议一行代码只做一件事情。

int salary1, salary2, salary3;
int num1 = 10, num2 = 8;

使用变量,打印出来

cout << “小明的收入是:” << salary << endl;

4.2使用单精度浮点型变量

浮点型变量:32位,4个字节,6-7位有效数字,可以在数值的末尾加一个f

输出超出有效位float 数会产生自动截断:

int main(){float num = 12345.12345678;std::cout << num << std::endl;return 0;
}

12345.1

使用float类型变量的例子: 计算一个圆柱体的体积

#include <iostream>
#include <cmath>
int main(){// 已知圆柱体的半径和高,求圆柱体的体积const float PI = 3.14;  //定义了一个float 类型的常量,无法改变 float radius = 4.5f;float height = 90.9f;//double volume = PI * radius * radius * height;double volume = PI * pow(radius, 2) * height;std::cout << "体积是:" << volume << std::endl;return 0;
}

体积是:5779.88

4.3使用双精度浮点型变量

直接输出

int main(){// 输出double类型的数字// 直接输出的是6 位有效数字 3.33333std::cout << doublenum << std::endl;return 0;
}

3.33333

控制位数输出,强制以数字的方式显示

#include <iomanip>
using namespace std;
int main(){cout << fixed;           //强制以小数的方式显示,cout << setprecision(2);  // 控制小数点后两位数字double doublenum = 10.0 / 3.0;cout << doublenum << endl;return 0;
}

3.33

控制输出宽度

int main(){//设置输出宽度cout << setw(8) << "|" << 3.14 << "|";return 0;
}

输出

|3.14||3.14|
|    3.14|

注意单精度浮点型的有效数字只有6-7位,在数字较大市,会产生截断误差

演示单精度浮点型和双精度浮点型的精度问题。

#include <iostream>
#include <cmath>
#include <iomanip>using namespace std;
int main(){// 演示单精度浮点型和双精度浮点型精度问题float numFloat = 10 / 3.0;double numDouble = 10 / 3.0;cout << fixed;cout << "numFloat: " << numFloat << endl;cout << "numDouble: " << numDouble << endl;cout << "numFloat: " << numFloat * 10000 << endl;cout << "numDouble: " << numDouble * 10000 << endl;cout << "numFloat: " << numFloat * 1000000000 << endl;cout << "numDouble: " << numDouble * 1000000000 << endl;return 0;
}
numFloat: 3.333333
numDouble: 3.333333
numFloat: 33333.332031
numDouble: 33333.333333
numFloat: 3333333248.000000  //精度损失严重
numDouble: 3333333333.333333

5.附送-cout 设置宽度,对齐方式

#include <iostream>
#include <iomanip>// #include <windows.h>
// SetConsoleTile("控制台标题")
// 在window系统之下才好用
using namespace std;
int main(){// 转义字符cout << "\a" << endl; //警报声,没听到double attack1 = 272;double attack2 = 250;double attack3 = 240;// 默认输出右对齐cout << setw(8) << attack1 <<setw(8) << attack2 <<setw(8) << attack3 << endl;// 设定输出左对齐cout << left;cout << setw(8) << attack1 <<setw(8) << attack2 <<setw(8) << attack3 << endl;// 设定填充方式cout << setfill('_');        // 单引号和双引号右区别,双引号是要报错的。cout << setw(8) << attack1 <<setw(8) << attack2 <<setw(8) << attack3 << endl;return 0;
}

输出

     272     250     240
272     250     240
272_____250_____240_____

6.算术运算符和表达式

算术运算符:
一元运算符:++,–
二元运算符:+,-,*,、,%‘
表达式:运算符+操作数组成表达式

6.1除法、取余

#include <iostream>
using namespace std;
int main(){// 运算符和表达式int num1 = 5, num2 = 2;cout << num1 / num2 << endl;// 取模结果的符号和第一个操作数相匹配// 取模的应用场景: 取摸个数字的个位 15 % 10,45天式一个月零几天 45 % 30cout << num1 % num2 << endl;cout << (-1 * num1) % num2 << endl;cout << num1 % (-1 * num2) << endl;
}

输出

2
1
-1
1

6.2自加、自减

其实自加和自减再单独使用的时候前置和后置都没有区别,但是在和其他算子连用时才会体现出这个区别。

#include <iostream>
using namespace std;
int main(){// 运算符和表达式// 自加++和自减--// 放在后面的就是,先参与运算,自己再加; 放在前面就是自己先加,然后再参与运算。都是从自己出发// int num3 = (num2++) - (--num2);  // num3 = (2)- (1) = 1,这个分析是错的,这个编译器页过不去,会报错//  warning: unsequenced modification and access to 'num2' [-Wunsequenced]int num4 = num1 - (--num2);     // 至少这样是可以的cout << num2 << "\t" << num4 << endl;return 0;
}

输出

1       4

7.强制类型转换

类型转换原则:把表示范围小的类型值, 转换到表示范围大的类型值
short -> int -> long -> float -> double

强制类型转换语法
(类型名) 变量或数值

#include <iostream>
#include <cmath>
#include <iomanip>// #include <windows.h>
// SetConsoleTile("控制台标题")
// 在window系统之下才好用
using namespace std;
int main(){// 类型转换int num1 = 5, num2 = 2;// 两个整型相除的结果就是整型,将其赋值给一个double类型的变量,num3 = 2.0double num3 = num1 / num2;cout << num3 << endl;// 先将整型5转换成double 类型的5.0,然后进行浮点型的除法运算,运算结果是2.5double num4 = (double)num1 / num2;cout << num4 << endl;return 0;
}

输出

2
2.5

C++(4)--初识变量、数据类型相关推荐

  1. JavaScript(一)—— 初识JavaScript/注释/输入输出语句/变量/数据类型

    本篇为 JavaScript 系列笔记第一篇,将陆续更新 文章目录 一.初识 JavaScript 1. JavaScript 是什么 2. JavaScript 的作用 3. HTML.CSS 和 ...

  2. java字符常量括_Java常量 变量 数据类型

    常量分为两种: 1:字面值常量: A: 字符串常量,需要双引号括起来     "helloword" B:整数常量      10 C :小数常量      8.9 D:字符常量, ...

  3. 查看scala变量数据类型_Scala文字,变量和数据类型| Scala编程教程

    查看scala变量数据类型 1)Scala数据类型 (1) Scala Data Types) Scala has the same set of data types as in Java. The ...

  4. python变量 数据类型 列表 元组 字典

    python基础语法2 变量 数据类型与类型转换 列表 添加列表元素 修改元素 删除列表元素 组织列表 创建数值列表 操作列表 元组 元组转列表 字典 创建字典 列表取值 字典删除增加修改 变量 变量 ...

  5. JS-概述-基本语法-变量-数据类型

    概述-基本语法-变量-数据类型 1 JavaScript 概述 ① JavaScript 的特点 JavaScript 是一门动态的,弱类型的,解释型的,基于对象的脚本语言. 动态: 程序执行的时候才 ...

  6. 获取变量数据类型(JS)

    获取变量数据类型(JS) <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...

  7. 数据类型(数据类型简介、数据类型的分类(简单数据类型,获取变量数据类型,数据类型转换))

    目录​​​​​​​ 数据类型 数据类型简介 为什么需要数据类型 变量的数据类型 数据类型的分类 简单数据类型 获取变量数据类型 数据类型转换 数据类型 数据类型简介 为什么需要数据类型 变量的数据类型 ...

  8. js的初识及数据类型简介

    本资源由 itjc8.com 收集 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列 ...

  9. JavaScript获取变量数据类型

    JavaScript前文回顾: 认识JavaScript到初体验 JavaScript 注释以及输入输出语句 JavaScript变量的使用.语法扩展.命名规范 JavaScript数据类型简介以及简 ...

最新文章

  1. 什么是java多线程_什么是java多线程,java多线程的基本原理?
  2. fscanf()函数具体解释
  3. 通信网真的面临容量危机?
  4. android内核读取file文件
  5. 利用boost获取时间并格式化
  6. qml WebEngineView zoomFactor 性质设置问题
  7. python定时器 循环_Python循环定时服务功能(相似contrab)
  8. javafx实现读者文摘上的文章预览及下载
  9. vim替换字符串带斜杠_vim替换命令
  10. Cooley-Tukey算法 (蝶形算法)
  11. 带你走进CoDeSys
  12. 在 sys.servers 中找不到服务器 '******'。请验证指定的服务器名称是否正确。
  13. web网站的注销功能实现
  14. 【字体在哪个文件夹】Win7怎么安装字体
  15. 3dmax 计算机中丢失,3ds Max文件损坏或丢失怎么办?
  16. CISCO banner MOTD, Login的区别
  17. Asp之Cookie篇—概述Cookie原理、归纳Cookie方法属性及应用
  18. JAVA-SSH2:JSch试用
  19. 新个税基数来了,九月工资啥时候发合适
  20. ARP断网攻击和防御

热门文章

  1. 制作.ppm格式Linux内核启动logo
  2. DNW应用程序错误,DNW错误问题解决
  3. WinCE启动界面的定制
  4. Platform Builder实践之配置文件
  5. efishell无法开机shell_开机出现efi shell卡住不动了解决方法全集
  6. 【转】调用约定__cdecl、__stdcall和__fastcall的区别
  7. 【转】文本文件和二进制文件区别及java中字节流和字符流归纳
  8. SharePoint学习札记[1] — WSS与MOSS的关系
  9. 【转】WOPI host消息体结构
  10. 一步步编写操作系统 25 cpu的保护模式