初学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防止误操作。

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

通讯录管理系统

相关推荐
帅中的小灰灰1 分钟前
C++编程观察者设计模式
数据库·c++·设计模式
z***y8627 分钟前
Java数据挖掘开发
java·开发语言·数据挖掘
软件开发技术深度爱好者26 分钟前
Python库/包/模块管理工具
开发语言·python
bubiyoushang88833 分钟前
基于MATLAB的自然图像梯度分布重尾特性验证方案
开发语言·matlab
MSTcheng.1 小时前
【C++STL】priority_queue 模拟实现与仿函数实战
开发语言·c++
还有几根头发呀1 小时前
从 C++ 的角度,系统地解释 进程(Process)、线程(Thread)、协程(Coroutine) 的概念、原理、优缺点,以及常见应用场景。
c++
oioihoii1 小时前
Python与C++:从哲学到细节的全面对比
c++
小年糕是糕手1 小时前
【C++】C++入门 -- inline、nullptr
linux·开发语言·jvm·数据结构·c++·算法·排序算法
郝学胜-神的一滴1 小时前
Python中一切皆对象:深入理解Python的对象模型
开发语言·python·程序人生·个人开发
kk哥88991 小时前
Keil MDK 5.39 编程 + 调试 ,ARM 嵌入式开发!如何安装
c++·arm