指针:指针是C语言的灵魂
地址:地址是内存单元的编号
cpu只能访问内存,不能访问硬盘
cpu和内存如何打交道:1.地址线,2.控制线,3数据线
地址线确定对哪一块内存进行处理
控制线表示是读还是写
数据线进行数据传输
重点是地址线,地址就是内存的编号
指针就是地址,地址就是指针,指针和地址是一个概念
指针变量是存放内存单元地址的变量,指针的本质是一个操作受限的非负证书
因为不能乘除,只能在某些情况下进行相减
分类:基本类型的指针,指针和数组的关系
include<stdio.h>
int main(void){ //内存的问题是软件开发中最核心的问题
int *p;//p是个指针变量,int*表示该p int i = 10; int j;//没有分配内存,所以输出后很可能是垃圾数字 //任何一变量在使用前必须初始化 p = &i; *p = i;//等价于i=i; printf("%d\n",*p);//10 printf("%d\n", p);//地址 j = *p;//等价于j=i; /* p变量的内存本属于操作系统 分配:运行此程序后 p变量会被操作系统标记已经被分配 */ //是否被分配的问题,请求操作系统分配空间 //释放:不想再使用,对p内存的使用权限在给 getchar(); return 0;
}