笔记:https://blog.csdn.net/ClaireSy/article/details/108422945
- 第一个程序
- 注释
- 变量
- 常量
- 关键字
- 标识符命名规则
- 数据类型
- sizeof 关键字
- 浮点型
- 字符型
- 转义字符
- 字符串型
- 布尔类型
- 数据的输入 cin
- 运算符
- 程序流程结构
- 跳转语句
- 数组
- 冒泡排序
- 二维数组
- 函数
- 指针
- 结构体
1.第一个程序
#include<iostream>
using namespace std;
int main() {
cout << "HelloWorld" << endl;
system("pause");
}
2.注释
单行注释 //
多行注释 /* 内容 */
3. 变量
数据类型 变量名称 = 初始值 ;
// 单行注释
/*
1.
多行注释
2....
*/
int a = 10;
4.常量
用于记录程序中不可更改的数据,常量一旦定义不可修改
#define 宏常量
const 修饰的变量
#include<iostream>
using namespace std;
#define DAY 7
int main() {
cout << "一周有" << DAY << "天" <<endl;
const int month = 12;
cout << "一年有" << month << "月" << endl;
system("pause");
}
5.关键字/标识符

6.标识符命名规则(见明知意)
- 标识符不能是关键字
- 标识符只能是字母、数字、下划线
- 第一个字符必须是字母或者下划线
- 标识符区分大小写
7.数据类型
变量定义: 变量类型 变量名 = 变量初始值;
变量类型存在的意义是为变量分配合适的内存空间
short 2个字节 (-32768~32767)
int 4个字节 (-2147483648~2147483637)
long 32位4字节,64位 8 字节
long long 8字节
short num_1 = 10;
int num_2 = 10;
long num_3 = 10;
long long num_4 = 10;
8.sizeof 关键字
int x = sizeof(类型);
cout << sizeof(short) << endl;
cout << sizeof(int) << endl;
cout << sizeof(long) << endl;
cout << sizeof(long long) << endl;
9.浮点型
单精度:float
双精度:double
float 4字节,7有效位数
double 8字节,15位精度
默认情况下,小数显示6位有效数字
科学计数法
float f1 = 3e2;
cout << f1 << endl;
float f2 = 3e-2;
10.字符型
定义 char ch = \'a\';
字符类型占用的内存空间: 1 字节
- 只能使用 ‘ ’ ,不能使用双引号
- 单引号内不能超过4个字符,但是始终只识别最后一个字符、
- 字符对于的数字 ASCII
ASCII 表: http://ascii.911cha.com/
11.转义字符
换行 \n
水平制表 \t
反斜杠 \\
cout << "he\tWorld"<<endl;
cout << "hel\tWorld" << endl;
cout << "hedd\tWorld" << endl;
cout << "heddd\tWorld" << endl;
12.字符串型
有两种风格
1.C语言风格的串
char 变量名[] = "字符串";
2.C++ 风格字符串
string 变量名 = “字符串”;
//[] 必须放在变量后
char str[] = "hello world";
cout << str << endl;
string str2 = "Hello ,World 2.0";
cout << str2 << endl;
string 类型需要包含新的头文件
#include<string.h>
13.布尔类型
- true 本质是1
- false 本质是0
占用 1 个字节的内存,本质上 0 代表假 , 1 代表真。 布尔类型非0即为真
14. 数据的输入
关键字 cin
格式: cin >> 变量 ;
int a;
cout << "请输入a:";
cin >> a;
cout << "a:"<<a<<endl;
15. 运算符
算术运算符: + - * / % ++ --
赋值运算符:+= -= *= /= %=
比较运算符:== , !=, >,<,<=,>=,
逻辑运算符:! && ||
- 整数相除,只保留整数部分
- 取余 % 只能作用在整数
- 对整数赋值小数,真正生效的只有整数部分
- && 前置为假,则后条件不判断, || 前置为真,后条件不判断,即短路
16.程序流程结构
- 顺序结构 顺序执行,不发生跳转
- 选择结构 if 语句
- 循环结构 while, for, do-while
分支包括:单个 if ,if -else , if -else if - else ,嵌套if 等
三目运算符: 表达式1 ? 表达式2 : 表达式3;
int i = 0;
int tag = 1;
do {
cout << i << endl;
i++;
if (i == 50) {
tag = 0;
}
} while (tag);
17.跳转语句
- break
可以在 switch 中跳出,可以在循环中 ,可以出现在多层循环中
- continue 跳过当前行以下的代码
- goto 可以无条件的跳转语句
语法: goto 标记
goto flag;
cout << "aaa"<<endl;
cout << "bbb"<<endl;
flag:
cout << "ccc"<<endl;
18.数组
存放相同的数据元素
数据类型 数组名[数组长度];
数据类型 数组名[数组长度] = {值1,值2。。。};
数据类型 数组名[] = {值,,,};
一维数组数组名的用途:
- 可以统计整个数组在内存中的长度
- 可以获取数组在内存中首地址
//数组大小
cout << sizeof(arr) << endl;
//数组第一个元素的大小
cout << sizeof(arr[0]) << endl;
//数组长度
cout << sizeof(arr) / sizeof(arr[0]) << endl;
//数组首地址
cout << arr << endl;
//数组首地址
cout << (int)arr << endl;
//第一个元素地址 = 数组首地址
cout << (int)&arr[0] << endl;
//第二个元素地址 = 第一个元素地址 + 类型大小
cout << (int)&arr[1] << endl;
19.冒泡排序
原理:遍历数组,每一次遍历都将昂一个极大或者极小的值放在数组的一端
void bubbleSort(int data[],int size) {
for (int i = 0; i < size-1; i++) {
for (int j = 0; j < size-i-1; j++) {
if (data[j] < data[j + 1]) {
int temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
}
20.二维数组
数据类型 数组名 [行数][列数] ;
int arr[2][3];
int arr2[2][3] = {1,2,3,4,5,6};
int arr3[2][3] = { {1,2,3},{4,5,6} };
int arr4[][3] = {1,2,3,4,5,6}
21. 函数
函数参数传递:实参、形参
值传递:
形参的变化不会影响到原来的值
引用传递:
传递的是应用的地址
函数声明:提前告诉编译器函数的存在,声明可以多次,但是定义只能用有一次
函数的分文件编写:
- 创建 .h 文件
- 创建 .cpp 文件
- 在 .h 文件创建声明
- 在 cpp 文件包含头文件 (使用 ” “)
#pragma once
#include<iostream>
using namespace std;
void swap();
void swap() {
cout << "swap..." << endl;
}
Main
#include "swap.h"
int main() {
swap();
return 0;
}
22.指针
int a = 10;
int *p = &a;
cout << "a:" << a << endl;
cout << "p:" << p << endl;
cout << "*p:" << *p << endl;
指针变量 32位为 4 字节 ,64 位 8字节
空指针&野指针
空指针:指针变量指向地址编号为0 的指针(0~255 内存 编号是系统占用,不能访问)
用于对指针变量进行初始化,空指针不可以进行访问
int *p =NULL;
野指针:指针变量指向非法的内存空间
int* p = (int*)0x00110;
cout << *p << endl;
const 修饰指向
- const 修饰指向 指针的指向可以修改,指针指向的值不可修改
- const 修饰常量
- const 修饰指针以及常量
//常量指针
int a = 10;
int b = 20;
const int* p = &a;
//*p = 20; 不可修改
p = &b;
//指针常量
int a = 10;
int b = 20;
int * const p = &a;
//p = &b; 指针不可修改
*p = 30;
//const 修饰指针与常量
int a = 10;
int b = 20;
const int * const p = &a;
//p = &b; 指针不可修改
//*p = 30; 值不可修改
23.结构体
构建用户自定义的数据类型
语法:
struct 结构体名称{
成员列表
};
结构体数组: struct 结构体名称 数组名[] = {...}
void print(const int * a){
//a = 10;
}