Skip to content

20191124

ziyouzy edited this page Nov 24, 2019 · 7 revisions

1.指针与数据类型的区别:

从数据类型的强制转换角度看来,如:

int i =15;

unsigned char c =(unsigned char)i;

int *p=&i;

unsigned char *up =(unsigned char星)p;

可以总结出,unsigned char与unsigned char*是两种截然不同的数据类型

也可以总结出,原子数据类型+“”可以成为新的数据类型,或者说“”的用法可以理解成用来去修饰某个已存在的原子,或复合的数据类型,他拥有被修饰数据类型所有的方法,但是使用方式从“.”变成了“->”

另外回到指针的声明步骤

先要有实际存在的变量,如:

int j =15;

才会有实例化完整的指针,如:

int *j_p =&j

&的作用是获取已实例化值所对应的内存地址。从这里又可以看出指针的使用方式是4个独立概念的元素之间的相互作用,用整型举例,如:

已存在int i=8;的前提下:

int;i;

int*;&i

ps:

指针的直接使用方式为print(j_p),从而说明指针不能直接使用,但是可以进行运算(如j_p+1)如果希望获取真正所指向的数值,则通过*j_p来实现,也可以说明,指针这种数据类型储存的是某一块内存地址的名称,这名称也是有数学规律的,从数据结构的角度来说,他属于线性结构,因为线性结构,所以指针数据类型具备加减运算的能力

物理层的每一块最基本的内存单位,都有其唯一的内存地址名称,内存生产出来的时候就已经被安排的明明白白

test2

Clone this wiki locally