目录
指针
1内存
谈到指针就离不开内存。先理解内存。
内存是电脑上非常重要的存储器,计算机中程序的运行都是在内存中进行的。
电脑的内存一般是4G,8G,16G,32G,内存的空间大小是如何使用的,操作系统把内存很好的使用了。
内存空间是如何管理,如何使用的?
注:硬盘和内存是两码事
像4G,8G这样的叫内存
像1T的这样的叫硬盘
变量是创建在内存中的,(在内存分配空间的),每个内存单元都有地址,所以变量也是有地址的。
取出地址变量如下:
#include<stdio.h>
int main()
{
int a = 10;//一旦创建a,a要在内存中开辟空间的,a是一个整型,要占4个字节,
//而在内存中一个内存单元一个字节,即a要占4个内存单元,所以10在这4个内存单元的空间中存储着
//因为每个内存单元都有一个编号,a的地址是这4个编号中的第一个编号(第一个内存单元的地址)
&a;
//&——是取地址操作符
//&a是取出a的地址,拿到a的地址
//注:这里a的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
printf("%p\n", &a);
//打印地址,%p是以地址的形式打印
return 0;
}//运行结果是:00B1F8E0
即代码是:
#include<stdio.h>
int main()
{
int a = 10;
printf("%p\n", &a);
int * p = &a;
return 0;
}//打印的是a的地址:00EFFB334
//因为地址长,所以它用十六进制显示。以0X开头的数字是十六进制数字,以0开头的数字是八进制。
//若把取地址a(&a)也存起来,怎么存?(即是把a的地址存起来)
//则需创建变量p把a的地址存进去,p的类型是?
#include<stdio.h>
int main()
{
int a = 10;
printf("%p\n", &a);
int * p = &a;//p的类型是int*,此时p就是指针变量
char ch = &#