内存:计算机的储存空间,一个内存单元为一字节,一共有2的32次方个内存单元,并从零号开始编号
电脑机器有32位(32根地址线——物理线,通电为正为1,通电为负为0,可以视作门牌号)机器和64位()机器
电信号转换成数字信息——1和0组成的二进制序列
%p用于打印地址,如:printf("%p\n",&a)(取a的地址)
存储的地址是内存内的随机位置
指针变量:类似于p=&a专门用来存放地址的变量,则p为指针变量
指针变量的数据类型是int*,如:int* p=&a
*代表指针,*前的数据类型,代表了取的何种类型数据的地址,取整型的地址,则用int*,取浮点型的地址,则用float*,取字符型的地址,则用char*
若已存有指针变量,则可以用*找到指针变量中的地址
例
#include<stdio.h> //指针就是地址
int main() //指针变量用于存放地址
{
int a = 1;
int * p = &a;
*p = 9 //*解引用操作,通过p中地址找到a
//此处解引用时,可以重新赋值,故更改a的值可以直接通过a的地址,用解引用 修改,利用*p改变a的原有赋值
指针所占的空间的大小是相同的,指针需要多大空间,取决于地址存储需要多大空间,故用32位的计算机,指针存放大小是4byte;用64位的计算机,指针存放大小是8byte