网站界面需求,电子商务网站建设目标,论坛网站开发文档,世界交互设计最好的前10大学【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;}}}}