网站开发和商城的科目,软件商城app下载,看车二手车网站源码,用手机建立自己的网站【C/C 学习笔记】指针
视频地址: Bilibili
概念
可以通过指针间接访问内存用于保存地址
使用
通过 可以获取数据的指针 通过 * 可以取得指针的数据
指针的数据类型就是 数据类型 *
int number 10;int *p number;// 10
cout number: …【C/C 学习笔记】指针
视频地址: Bilibili
概念
可以通过指针间接访问内存用于保存地址
使用
通过 可以获取数据的指针 通过 * 可以取得指针的数据
指针的数据类型就是 数据类型 *
int number 10;int *p number;// 10
cout number: number endl;
// 000000149F0FF960
cout p: p endl;
// 10
cout ps number : *p endl;内存
32 位占 4 个字节64 位占 8 个字节
空指针
指针变量指向内存中编号为 0 的空间
用于初始化指针变量空指针的内存数据无法访问
int *p NULL;
// ERROR!
// p 100;野指针
指针变量指向非法的内存空间无法确定是否能够使用
// ERROR
int *p (int *)0x1100;const 修饰指针 const 修饰指针 - 常量指针 指针的指向可以修改但是指针指向的值不能修改 // const 修饰指针
int a1 10;
int b1 10;
const int *p1 a1;// ERROR
// *p1 20;
// PASS
p1 b1;const 修饰常量 - 指针常量 指针的指向不可以修改但是指针指向的值可以修改 // const 指针常量
int a2 10;
int b2 10;
int *const p2 a2;// PASS
*p2 20;
// ERROR
// p2 b2;const 修饰指针常量 指针的指向不可以修改并且指针指向的值也不可以修改 const int *const p3 a3;指针和数组
数组名就是指向数组的首地址
int arr[] {1, 2, 3, 4, 5};
int *p3 arr;cout p3: *p3 arr[0]: arr[0] endl;
// p 1 导致指针向后移动 4 个字节
cout p3: *(p3 1) arr[0]: arr[1] endl;指针和函数
通过指针传参可以修改原数据
int add1(int a, int b) {a;b;return a b;
}int add2(int *a, int *b) {*a *a 1;*b *b 1;return *a *b;
}int a 10;
int b 20;// 不修改原值
cout add1: add1(a, b) endl;
// 10 20
cout a: a b: b endl;// 修改原值
// 32
cout add2: add2(a, b) endl;
// 11 21
cout a: a b: b endl;冒泡排序:
void bubble(int *arr, int len) {for (int i 0; i len; i) {for (int j 0; j len - i - 1; j) {if (arr[j] arr[j 1]) {int temp arr[j];*(arr j) arr[j 1];*(arr j 1) temp;}}}}