目录
13、指针
内存
为了有效管理和使用内存:
内存划分成一个个小的内存单元,每个内存单元的大小是1个字节
给内存单元进行编号,这些编号被称为该内存单元的地址
C语言中又将地址称为指针(pointer)
即编号=地址=指针
地址由地址线传输的
变量创建的本质是像内存申请空间
地址在vs上用16进制展示的
指针
int a=10;
int*pa=&a;
&a
&a 拿出的是a所占内存的4个字节中地址较小的字节的地址
&a=地址=指针
pa
pa是用来存放地址(指针)的
pa被称为指针变量,口头语中也叫做指针
*
*说明pa是指针变量
int说明pa指向的对象的类型是int类型
例如:
char ch=‘w’
char*pc=&ch
*pa=20
此为解引用操作,*叫做解引用操作符或者叫做间接访问操作符
即通过pa里存的地址找到所指对象a,再把a改为20
指针变量的大小
指针变量是用来存放地址的,的大小取决于地址的大小,与类型无关
32位机器上,地址是32个0/1组成的二进制序列,地址的存放需要4个字节的空间,所以指针变量的大小是4个字节
64位机器上,地址是64个0/1组成的二进制序列,地址的存放需要8个字节的空间,所以指针变量的大小是8个字节
14、结构体
C语言的内置类型:
char、short、int、long、long long、float、double
不能直接表示复杂对象,比如人:名字+性别+年龄+住址+身份证号码
结构体:
是可以用来描述复杂对象的,关键字为struct
一个汉字占两个字符空间
利用指针打印:
两种打印方式:
printf("%s %d", (*psb).name, (*psb).age);
printf("%s %d", psb->name, psb->age);
结构成员访问操作符:
结构体变量 . 成员名
结构体指针->成员名