学习内容:
- https://www.bilibili.com/video/BV1dW411v7VM?p=14
- https://www.bilibili.com/video/BV1dW411v7VM?p=16
- https://blog.csdn.net/yanggangclcsdn/article/details/49704089
学习总结:
- 指针
类比于钟表的指针,指针要想产生意义需要先满足两个条件,1.可以指向一个位置2.这个位置有意义;指针也可以当作是一个个房间的地址,要想用房间里的东西,就要用到房间里的地址
//生成指针
int *a;
//给指针写入数据1
*a=1;
//给指针写入数据2
int i=1;
int *b=&i;
//指针移动
int x=1;
a=a+x;//x就是移动的房间数
//指针所指的房间数据调用
int c=*a;
//指针的运算
c=(*a)*(*b);//指针相乘
c=*a+*b;//指针相加
c=*a-*b;//指针相减
指针相对于数组的优势是指针更加灵活不需要预设空间
- 常量指针
const int *p;//常量指针,指针的值可以改变,不能用这个指针修改指针指向内存的值,可以指向常量也可以指向变量
int const *p;//常量指针,指针的值可以改变,不能用这个指针修改指针指向内存的值,可以指向常量也可以指向变量
int *const p;//常指针,指针变量的值不能被改变,能用这个指针修改指针指向内存的值,只能指向变量,定义时要进行初始化,初始化后不能修改,和static用法一样
int const *const p;//指向常量的常指针,指针不能被修改,指针指向的内存不能被修改
//总结:const后边的值不能被修改
- 结构体指针
#include <stdio.h>
//创建结构体
typedef struct
{
int *p;//指针
}test;
//定义结构体
test x;
//让结构体里的指针指向某一个地址
int main(void)
{