指针注意事项:每运行一次程序都会随机分配给变量一个地址空间,运行完后就释放了 再次运行的话就又重新分配一个地址 所以同一变量每次运行时他的地址是不一样的
指针:学习指针之前要了解什么是地址 32位机器 代表有三十而根地址线 每一根地址线有通电与断电两种状态 用1代表通电 用0代表断电 像这样表达的话就把电信号转化为数字信号 从三十二个零到三十二个一 每一个数都代表着一个地址 则一共就有2的三十二次方个地址 然后再为每个地址一个字节的存储空间
%p是专门用来打印地址变量的
int* p=&a int*表示p执行的对象是int型变量的地址 命名变量为p 在p中存放的是a的地址
*pa 中*为解引用操作表示通过pa里的地址找到a
存放地址时存放的只是第一个地址(知道第一个地址就能知道该变量的全部地址)所以用sizeof()来打印 不同类型地址的长度时 无论你是short longlong 如果是32位机着打印长度位4 若果为64位机则打印长度位8
结构体 struct
1, 结构体名是定义一个结构体的类型(就如char int一样一种类型)
2,还要个该结构体定义一个名字stu就是该结构体的名字
3,结构体的初始化
在打印结构体中的成员时可以使用3种方法 1 , 结构体变量名称.成员名(stu.name)
2, 先设置一个结构体的地址变量 (*pstu).name
3, 先设置一个结构体的指针 pstu->name