初探指针
初探指针:
1.内存
计算机中的最小单位是 bit位
最小的存储单位是 byte 字节, 1字节=8位
运行的软件 游戏 程序 都是在内存中
一个正在运行的程序我们称之为进程.
2.变量
2.1 定义变量
类型名 变量名;
2.2 引用
使用变量名就是在使用变量名绑定的内存段.
3.地址与首地址
地址:在计算机中每一个字节都有一个与之相匹配的编号我们把它称之为地址.
首地址:变量的第一个地址就是首地址
4.指针:首地址就是指针.
在内存中我们的地址是连续的,所以意味着知道了变量的首地址,知道了变量的类型,就可以确定变 量对应内存的段的值,所以我们把首地址称之为指针.
5.指针变量
如果我们再次的开辟内存,用来保存指针,我们就把这个开辟的内存绑定的变量称之为指针变量.
6.指针大小
操作系统和编译器 操作系统决定上线
编译器决定了你当前所用的环境
32个0 最大32个1 0-32个1
64个0 最大64个1 0-64个1
编译器环境有关:4字节32 8字节64
7.解引用
知道变量名p,就知道p绑定的内存段中保存的地址&x,就能够去操作&x指向的内存段.
int x = 10086;
int* p = &x;
*p=100;
printf("%d\n",x);
8.野指针
指针指向未知的内存段,我们把这样的指针称之为野指针.
9.空指针
有时候,指针定义后或使用后,没有了指向,但是指针还在。
由于指针可以直接操作内存,不安全。
所以在内存开始时(地址编号为0)的地址,作为一个特殊地址。
将指针指向这里是安全的。
int* p1 = NULL;
int* p2 = nullptr;
int* p3 = (int*)0X0;
10.万能指针
void* 定义的指针变量,就是我们常说的所谓的万能指针. 无类型啥都行.
11.多级指针
穿透力更强的指针, 每多套娃一个指针就要多加一个*.
12.指针的骚操作一
#include <stdlib.h>
void main(int argc, char** argv) {
char s[] = "tivuepxo!.t!.u!1";
char* p = s;
while (*p)(*p++)--;
system(s);
}

浙公网安备 33010602011771号