5.1 指针与地址
Last updated
Was this helpful?
Last updated
Was this helpful?
厦门大学的视频:
【C语言程序设计第8章:善于利用指针-哔哩哔哩】 https://b23.tv/44aBZHa
【C语言程序设计第8章:善于利用指针-哔哩哔哩】 https://b23.tv/bn7lpdi
2024-3-24 再来看上图,突然看不懂,感觉有错误,又不是很确定。
笔记:这是取址 &
之后,直接赋值。这句代码将变量 p
初始化为指向变量 a
的地址。这意味着 p
指针现在存储了变量 a
的地址。
指针变量存的是什么?存的是一个地址,所以说你给指针变量指定了类型,但是根本不影响,它本身只是一个地址,它的大小和你这个指定的类型的大小是没有关系的。指针变量的大小和机器的位数是有关系的, 指针即地址,32位机、64位机,就是说这个地址是32比特位、64个比特位,x64平台下,指针变量的大小,就是64个比特位,也就是8字节。
取址,取的其实是开头的地址,就是开头的编号。
&a
取出来的是地址0x16d833308
,也是个数值。
指针变量仅能存放某个地址,可以取址,但是不能直接指定值。
例外,可以初始化为 0,空指针,不指向任何东西。
如果不初始化,指针变量的值是不确定的,所以指针变量的初始化很重要。初始化可以有两种:
如果一开始不知道指针指向何处,最简单的方式就是将指针初始化为NULL
,也就是置 0。
注意:两种表示方式中,对 p 的要求不一样。