写在前面:各位家人们,首先给大家道个歉,断更不是小的耍大牌,是自己亲人及我都先后成了小洋人,非常抱歉家人们,望各位家人保护好自己,都是天选之人。
C语言学习笔记二之C语言高级第二部分来了。那么就从上次的C高级第一部分继续接着写吧,没看过第一部分的家人们往这看
https://blog.csdn.net/lts1050981148/article/details/128209695?spm=1001.2014.3001.5501
老规矩,写的不对多指教,轻喷!
一.引言
二.指针概念
程序的执⾏都在cpu中执行,在磁盘上的程序需要把程序的指令拿到cpu中进行执行,在计算机存在一个存储设备,这个设备⽤于存储当前执⾏的程序----内存。
在程序执⾏所有内容都存储在内存中,每⼀个字节存储单元都分配了⼀个编号,把这个内存编号叫做地址(内存地址)在程序中,定义⼀个变量(int a = 1),将数据1存储到变量a中,这个变量就会存储这个执⾏程序所占⽤的内存空间的某个位置。那么数据存储到某个地⽅,涉及到地址。例如:买快递,快递到了就存储到某个驿站中,你的快递就相当于数据,驿站就相当于变量,这个驿站就需要有地址,你去驿站你的数据,相当于就是访问对应的地址获取地址中的数据在计算机中,就是靠变量的地址,去访问变量中数据存储数据,就需要存储的内存地址。
定义⼀个变量要占⽤内存空间,内存空间由地址来区别,所以变量名只是表示不同的空间--地址
内存空间的编号----地址
三.内存地址
在编写源程序,编译得到⼆进制可执⾏程序存储在硬盘中(静态);
当程序开始执⾏时,就变成动态过程;
在程序中表⽰数据,通过⼀个变量名来定义变量,在内存中使⽤空间存储数据,变量就是表示这个空间的数据;
定义变量后变量存储到哪⾥?存储在内存中;
操作系统就把内存这个很⼤的存储区域划分为⼀个⼀个的⼩空间(存储单元),每个⼩空间为字节(1B----8bit);
对每个存储单元通过地址--编号来管理,内存的完整空间就是有这⼀个⼀个的字节连续组成,通过地址来区别每个存储单元。
四.变量
变量就代表⼀个数据,代表存储在内存空间中某个地址中的数据内容,在内存中变量的数据内容也是根据地址来存放的。
变量名a就等价于0x1100这个地址中的数据,由于a是int类型所以知道占⽤⼏个字节,当然就是0x1100这个地址开始对应int类型的字节数的。
内容:
char:1
short:2
int:4
float:4
double:8
变量就是对⼀块内存空间的表示,⽤⼀个名字来表⽰⼀段空间,相当于就这段空间取别名。
五.指针变量
指针就是存储另⼀个变量的内存地址的⼀种数据类型,即指针的内容就是另⼀个变量的内存地址指针本⾝也是⼀个变量,所以指针也是有⾃⼰的地址,但是这个变量有点特殊,存放的是另⼀个变量的地址⽽已。
地址没有类型,只有地址中存储的内存数据有类型。
(一)指针2个层次:
(1)指针⾸先是⼀个变量,他就拥有变量的所有属性:值和类型。它的类型是指针,值就是另⼀个变量的地址。指针变量也需要内存空间,存放其他变量的地址;
(2)指针变量所指向(存储那个地址,就表⽰指向对应地址的空间)的数据类型。
(二)定义指针:
数据类型 * 指针名;
数据类型:是指,这个指针变量指向的数据类型,即指针变量存储地址,由于地址没有类型,指针到底存