初学C++

注释

变量

作用:给一段指定的内存空间起名,方便操作这段内容

数据类型 变量名 = 变量初始值;

常量

用于记录程序中不可更改的数据

宏常量:

#define 宏常量 常量值

const修饰的变量:

const 数据类型 常量名 = 常量值;

关键字

关键字是C++中预先保留的单词(标识符)

在定义变量或者常量时候,不要用关键字,否则会产生歧义。

标识符命名规则

数据类型

数据类型存在的意义:给变量分配合适的内存空间。

C++中能够表示整型的类型有几张,区别在于所占内存空间不同:

字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元。

字符型变量对应ASCII编码

cpp 复制代码
char c = 'a';
cout << "c's ASCII:" << (int)c << endl;

A-65

a-97

转义字符

作用:用于表示一些不能显示出来的ASCII字符。

  • \n:将当前位置移到下一行开头
  • \r:将当前位置移到本行开头
  • \:代表一个反斜线字符\

数据输入

用于从键盘获取数据

cin >> 变量

bool类型中非零的值都代表真

取模运算,如果第一个数小于第二个数,结果等于第一个数。

两个小数是不可以做取模运算的。

三目运算符

语法:表达式1?表达式2:表达式3

如果表达式1的值为真,执行表达式2,并返回表达式2的结果

在C++中,三目运算返回的是变量,可以继续赋值

switch语句和if语句

switch缺点:判断时候只能是整型或字符型,不能是一个区间。

switch优点:结构清晰,执行效率高。

数组长度

cpp 复制代码
sizeof(arr)/sizeof(arr[0])

冒泡排序

  1. 比较相邻的元素,如果第一个比第二个大,就交换他们。
  2. 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
  3. 重复以上的步骤,每次比较次数-1,直到不需要比较。

排序总轮数 = 元素个数 - 1

每轮对比次数 = 元素个数 - 排序轮数 - 1

二维数组可以只指定列数

二维数组的首地址 == 二维数组第一行首地址

空指针和野指针

空指针:指针变量指向内存中编号为0的空间

用途:初始化指针变量

注意:空指针指向的内存不可以访问。

cpp 复制代码
//指针变量p指向内存地址编号为0的空间
int *p = NULL;

//访问空指针报错,内存编号0~255为系统占用内存,不允许用户访问
cout << *p << endl;

野指针:指针变量指向非法的内存空间

常量指针

标题

cpp 复制代码
const int * p = &a;

指针的指向可以修改,但指针指向的值不可以修改

cpp 复制代码
*p = 20; //错误,指针指向的值不可以改
p = &b;	//正确,指针的指向可以改

指针常量

cpp 复制代码
int * const p = &a;

指针的指向不可以改,指针指向的值可以改

cpp 复制代码
*p = 20;
p = &b; //错误

const既修饰指针,又修饰常量

指针的指向和指针执向的值都不可以修改

cpp 复制代码
const int * const p = &a;

指针和数组

利用指针访问数组中的元素

指针和函数

作用:利用指针作函数的参数,可以修改实参的值

cpp 复制代码
void swap(int *p1,int *p2){
	int temp = *p1;
	*p1 = *p2;
	*p2 = temp;
}

结构体

结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。

结构体创建时struct可以省略

结构体指针

利用操作符->通过结构体指针访问结构体属性

结构体中const使用场景

用const防止误操作。

将函数中的形参改为指针,可以减少内存空间,而且不会复制新的副本出来。

通讯录管理系统

相关推荐
stevewongbuaa16 分钟前
一些烦人的go设置 goland
开发语言·后端·golang
撸码到无法自拔35 分钟前
MATLAB中处理大数据的技巧与方法
大数据·开发语言·matlab
Icomi_36 分钟前
【外文原版书阅读】《机器学习前置知识》1.线性代数的重要性,初识向量以及向量加法
c语言·c++·人工智能·深度学习·神经网络·机器学习·计算机视觉
apocelipes37 分钟前
Linux glibc自带哈希表的用例及性能测试
c语言·c++·哈希表·linux编程
island13141 小时前
【QT】 控件 -- 显示类
开发语言·数据库·qt
sysu631 小时前
95.不同的二叉搜索树Ⅱ python
开发语言·数据结构·python·算法·leetcode·面试·深度优先
Ronin-Lotus1 小时前
上位机知识篇---CMake
c语言·c++·笔记·学习·跨平台·编译·cmake
hust_joker2 小时前
go单元测试和基准测试
开发语言·golang·单元测试
wyg_0311132 小时前
C++资料
开发语言·c++
小机学AI大模型2 小时前
关于使用PHP时WordPress排错——“这意味着您在wp-config.php文件中指定的用户名和密码信息不正确”的解决办法
开发语言·php