和java不太一样的一样的标题打个*,方便对比
基本架构*
#include<iostream>
using namespace std;
int main()
{
system("pause");
return 0;
}
打印*
cout << "需要打印的内容" <<endl
endl
是一个特殊的输出流控制符,它代表"end line"
批注
//
/*
变量
数据类型 变量名 = 变量初始值;
int b =10;
常量*
define 宏常量
通常在文件上
#define 常量名 常量值
const 修饰的变量
通常在变量定义前假关键字const
const 数据类型 常量名 = 常量值
数据类型
整型
short
int
long
long long
实型(浮点型)
单精度 float (7位有效数)
双精度 double(15-16位有效数)
字符
char xx = 'a'
转义字符
字符串
C风格*
char 变量名[ ] = "字符串值"
C++风格
string 变量名 = "字符串值"
布尔型
bool flag = true/false
数组
是一个集合,里面存放了相同类型的数据元素,并且是由连续的内存位置组成的
一维数组
定义
数据类型 数组名[数组长度];
数据类型 数组名[数组长度] = {值1, 值2, 值3 ...};
数据类型 数组名[ ] ={值1, 值2, 值3 ...};
数组名*
1. 可以统计整个数组在内存中的长度: sizeof(数组名)
e.g获取数组元素个数
sizeof(arr)/sizeof(arr[0]) //整个数组占用的内存空间/每个元素占有的内存空间
2. 可以获取数组在内存中的首地址 :cout<<数组名<<endl
e.g数组中第一怪元素的地址为:(int)&arr[0] //其实和首地址是一样的
&是取址符
二维数组
二维数组就是在一维数组上多加一个维度
定义
数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};
数据类型 数组名[行数][列数] = {数据1, 数据2, 数据3, 数据4};
数据类型 数组名[][列数] = {数据1, 数据2, 数据3, 数据4};
*推荐使用第二种
数组名*
查看二维数组所占内存空间: sizeof(数组名)
e.g获取二维数组行数
sizeof(arr)/sizeof(arr[0])
获取二维数组列数
sizeof(arr)/sizeof(arr[0][0])
获取二维数组首地址: 直接打印
运算符
算术
处理四则运算
*注意在除法运算中除数不可以为0
赋值
将表达式的值赋给变量
比较
表达式的比较,返回true/false
逻辑
根据表达式的值返回true/false
非零的数都是真,不仅仅是1!
程序流程结构
顺序
程序按顺序执行,不发生跳转
选择
依据条件是否满足,有选择执行相应功能,还可以嵌套
if
单行
if(条件){
满足条件执行的语句
}
多行
if(条件){
条件满足执行的语句
}else{
条件不满足执行的语句
}
多条件
if(条件1){
条件1满足执行的语句
}else if(条件2){
条件2满足执行的语句
}else{
都不满足执行的语句
}
三目运算符
表达式1 ? 表达式2 :表达式3
1为真,执行2
1为假,执行3
e.g 1
将a和b做比较,将变量大的赋值给c
c = (a>b ? a:b);
e.g2
三目运算符返回的是变量,可以继续赋值
(a>b ? a:b) =100;
switch
执行多条件分支
switch(表达式){
case 结果1: 执行语句;break;
case 结果2: 执行语句;break;
...
default: 执行语句;break;
}
case里如果没有break会一直执行下去
与if相比,对于多条件判断效率高,但是不可以判断区间
循环
依据条件是否满足,循环多次执行某段代码,可以嵌套
while
满足循环条件,执行循环语句
while(循环条件){
循环语句
}
for
满足循环条件,执行循环语句
for(起始表达式;条件表达式;末尾循环体){
循环语句;
}
跳转语句
break
用于跳出选择/循环结构
continue
在循环中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环
goto*
如果标记的名称存在,执行到goto语句时候,会跳转到标记的位置
goto 标记
标记:
关键字
sizeof
求出数据类型占用内存大小
sizeof (数据类型/变量)
cin*
用于从键盘获取数据
cin>>变量