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

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

通讯录管理系统

相关推荐
DARLING Zero two♡26 分钟前
关于我、重生到500年前凭借C语言改变世界科技vlog.16——万字详解指针概念及技巧
c语言·开发语言·科技
7年老菜鸡27 分钟前
策略模式(C++)三分钟读懂
c++·qt·策略模式
Gu Gu Study28 分钟前
【用Java学习数据结构系列】泛型上界与通配符上界
java·开发语言
Ni-Guvara35 分钟前
函数对象笔记
c++·算法
似霰39 分钟前
安卓智能指针sp、wp、RefBase浅析
android·c++·binder
芊寻(嵌入式)1 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
獨枭1 小时前
C++ 项目中使用 .dll 和 .def 文件的操作指南
c++
霁月风1 小时前
设计模式——观察者模式
c++·观察者模式·设计模式
橘色的喵1 小时前
C++编程:避免因编译优化引发的多线程死锁问题
c++·多线程·memory·死锁·内存屏障·内存栅栏·memory barrier
一颗松鼠1 小时前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript