数组
数组是存储若干个相同数据类型的值的容器,数组有3要素,1是数组存储的数据类型,2是数组的名字,3是数组的长度。
数组的声明
数组的声明如下:
type arrayName[elementsCount];
type是数组存储的数据类型,arrayName是数组的名字,elementsCount是数组的长度。数组的长度必须大于0。
数组
数组是存储若干个相同数据类型的值的容器,数组有3要素,1是数组存储的数据类型,2是数组的名字,3是数组的长度。
数组的声明
数组的声明如下:
type arrayName[elementsCount];
type是数组存储的数据类型,arrayName是数组的名字,elementsCount是数组的长度。数组的长度必须大于0。
auto关键字
自动推断类型的关键字,它将会根据值来对变量设置数据类型。它不允许在声明变量时不设置默认值,必须在声明的同时为变量设置默认值。
auto关键字无法精确的指定变量的具体数据类型,所以默认值可能出现混淆时,就只能声明具体数据类型的变量。
练习题
1、让用户输入自己的身高(米),将它转换为厘米输出。
答:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
float height = 0.0f;
cout << "Enter your height in meter:";
cin >> height;
cout << "Your height in centimeter is: " << height * 100.0f <<"cm" << endl;
}
2、编写一个程序,让用户输入秒数,将他转换为天-小时-分钟-秒并打印出来。
答:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int second = 0;
cout << "Enter a second(integer):";
cin >> second;
//1h = 60m = 3600s 1d = 24h
cout << "The converted result is: "
<< second / 60 / 60 / 24<< "day(s), "
<< second / 3600 % 24<< "hour(s), "
<< second / 60 % 60<< "minute(s), "
<< second % 60<< "second(s)."<<endl;
}
3、要求用户输入一个班级的男生和女生的人数,输出女生的比例(百分比)。
答:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int male = 0;
int female = 0;
cout << "Enter the count for male in the class:";
cin >> male;
cout << "Enter the count for female in the class:";
cin >> female;
cout << "The percentage of female in the class is:"
<< (float)female / (float)(female + male) * 100.0f
<< "%." << endl;
}
类型转换
int -> float 不发生变化。
float/double -> int 向下取整。
尽量避免将超过数据类型取值范围外的值赋值给变量。
float + int 的情况下会视值的大小进行类型转换,值小的转换为值大的数据类型。
强制类型转换
1)在常量或变量前加上要转换的数据类型并使用括号括起来,如:
int i = (int)12.9;
此为C语言标准。
2)在常量或变量前加上要转换的数据类型并使用括号将常量或变量括起来,如:
int j = int(12.9);
此为C++语言标准。
两种转换规则均与上述类型转换规则相同,浮点转到整型会进行向下取整。
算数运算符
算数运算符有 +、-、*、/和%,分别为加、减、乘、除和取余(求模),用于数字类型数据的计算。
运算结果受赋值变量的数据类型的影响,如运算符两边的数据为浮点型,但接收结果的变量为整型,则结果不会采用四舍五入的方式取整,而是会向下取整,如下:
float a = 1.5;
float b = 2.3;
实际上a + b应该等于3.8,但如果接收结果的变量c为整型int时:
int c = a + b;
变量c的值为3.8向下取整的3。
关于取余运算符,在C++中,要求运算符两边的变量或常量均为整型数据。
关于优先级,与数学当中的优先级基本一致。
浮点型
浮点型是小数,分为单精度float和双精度double以及long double。float类型包含符号位1位、指数位8位和尾数位23;double类型包含符号位1位,指数位11位和尾数位52位;
C++中的科学计数法
可使用科学计数法表示浮点型数据,如1340000000可表示为1.34e+9。
e后面的符号表示小数点的左移或右移,如1.2e-6就等于0.0000012。
常量
常量是固定不变的量,如某个字符、数字或者true、false等。
常量的声明需要使用const限定符,如下:
const int i = 100;
常量一旦声明之后,就无法在其他代码段修改其值,必须转到声明行进行修改。
布尔类型
布尔类型变量的值只能是true和false。true为肯定,false为否定。一段逻辑运算符表达式的结果为布尔类型的值,如:
1 <= 2
该表达式的值为false。
将布尔类型的值输出到控制台时,会输出为1(true)或0(false)。
字符类型
字符型char需要用单引号"'"包围。
char型实际上也属于整型,可以通过将字符类型的值赋值给整型变量以得出该结论。这种情况下,字符类型的值会转换成ASCII码。
ASCII码对照表:https://tool.oschina.net/commons?type=4
整型
·short
short整型占用2byte,其值范围为-32,768~32,767。
·int
int整型占用4byte,其值范围为-2,147,483,648~2,147,483,647。
·long
long整型占用4byte,其值范围为-2,147,483,648~2,147,483,647。
·long long
long long整型占用8byte,其值范围为-9,223,372,036,854,775,808~9,223,372,036,854,775,807。
·long int
long int整型占用4byte,其值范围为-2,147,483,648~2,147,483,647。
变量修饰符
char、int变量前可以加变量修饰符,signed和unsigned。该修饰符会对变量的取值范围产生影响,如int类型变量前加入unsigned修饰符时,其取值范围从-2,147,483,648~2,147,483,647变为0~4294967295。
变量命名规则
1.使用字母、数字和下划线组成,不能包含特殊符号。
2.不能以数字开头。
3.不能使用关键字。
4.变量区分大小写。
5.推荐使用骆驼命名法。
6.一些变量名不推荐用两个下划线、一个下划线加大写字母、一个下划线开头的变量。
7.推荐使用m_开头来对私有类型变量进行命名以与公有类型变量区分。
变量的声明方法
以整形为例,变量声明时可以不设置默认值:
int example;
也可以声明时设置默认值:
int example = 0;
练习题
1.using namespace std;是做什么的?
答:引用名为std的命名空间。
2.打印HelloWorld并换行。
答:1)std::cout << "HelloWorld\n";
2)std:cout << "HelloWorld" << endl;
3)printf("HelloWorld\n");
3.什么情况下,函数中可以不使用return.
答:当函数返回值类型为void时。
4.让用户输入他的年龄,并显示这个年龄包含多少个月。
答:
#include <iostream>
int main(){
using namespace std;
int age = 0;
cout << "请输入您的年龄:";
cin >> age;
int months = age * 12;
cout << "此年龄包含" << months << "个月。" << endl;
return 0;
}
一定要规范化编程!
善用visual studio的格式化!
visual studio的格式化有快捷键,快捷键是组合键的形式,具体快捷键为Ctrl+K后Ctrl+F。
快捷键进行格式化是非常有限的,所以需要手动完善格式化。
using namespace的位置
using namespace可以写在函数体中,也可以写在函数体外,头文件引入的下方。
其区别在于写在函数体内只会在该函数下有效;函数体外则该文件下的所有函数都有效。
cout
cout是输出函数,是将字符串输出到控制台页面上或其他地方的函数。
cout的使用方式如下:
cout << "内容";
cout可以使用多个"<<"符号连接多个字符串,如:
cout << "内容1" << "内容2" << endl;
printf
printf也是输出函数,是将字符串输出到控制台页面上的函数,是c语言中的函数。
printf的使用方法如下:
printf("内容");
如果想要输出某个变量的值,则需要使用%s或%d等符号指定变量的类型,如:
printf("My age is %s", "24");
printf("My age is %d", 24);
main()
main函数是C++程序的入口,运行程序将会从main函数开始执行。如果没有main函数,则程序将不能被执行。
动态链接库则无需main函数,因为不会自己运行。
注释
注释非常重要,注释方便阅读代码,用来说明代码的作用。养成写注释的好习惯!
注释的符号
单行注释使用"//"符号
多行注释使用"/**/"符号,如:
//这是单行注释
/*这是
多行
注释*/
注释快捷键
Visual Studio当中的注释有快捷键,该快捷键是组合键的方式触发,具体为Ctrl+K后按下Ctrl+C将所选内容设置为注释;Ctrl+K后按下Ctrl+U则是将所选内容取消注释。
使用快捷键进行注释时,将所选内容的缩进都选择时会进行多次单行注释;只选择所选内容时会进行多行注释。
include
C++里的cout,cin等函数都属于iostream输入/输出流中的函数。所以,如果要使用cout,cin等函数需要先使用include引入iostream库。
其他情况,如想要使用某个头文件中的函数,则需要使用include引入头文件,如:
include "example.h"
注意,引入库时需要使用尖括号"<>"来包围库名,且库名后面不需要后缀;引入头文件时需要使用双引号'""'来包围头文件名,且头文件名后面需要加上后缀。
命名空间
使用using namespace引用命名空间可在后续编写过程中省略命名空间,如:
using namespace std;
cout << "string";
引入命名空间时,会将命名空间中的所有函数。如果想要单独引入某个命名空间中的某个函数,则需要在using namespace 命名空间后面使用"::"符号链接函数名,如:
using namespace std::cout;
如果不使用using namespace引入命名空间,则每次调用特定命名空间的函数时都引入一次,如:
std :: cout << "string";
一个库当中包含很多函数,库里的函数使用命名空间进行分类。所以想要使用特定函数需要引入库文件并且对对应命名空间进行引用操作,引用方式如上述3种方式。
使用using namespace引用命名空间可在后续编写过程中省略命名空间,如:
using namespace std;
cout << "string";
如果不引入命名空间,则每次调用特定命名空间的函数时都引入一次,如:
std :: cout << "string";
SpinBox 数字滑动条,可以应用于改变参数
Default Options 可以设置下拉菜单,点击旁边的加号,就可以输入需要的内容
下方Selected Option 设置默认显示内容
蓝图Branch 真假判断节点