关于C语言的指针(2):
指针输出
函数printf可以用格式说明“%p”指定指着输出,与格式说明“%p”对应的可以是指为地址的表达式,如在:
int k,*pk=&k,a[10];
printf("%p,%p,%p\n",pk,"abc",a);
中,pk是指针变量,,其数值为地址,字符串“abc”的数值是存储该字符串的一组地址连续的存储单元中其实存储单元的地址,数组名a的数值是分配给改庶族的一组地址连续的存储单元中其实存储单元的地址,其中%p的要求是16禁止输出格式。
其他
地址是特殊的无符号数
地址是32位数的二进制数表示的无符号数,因此,对指针变量可以进行一些运算,但是对指针变量的运算有一些限制,且运算结果与指针变量的类型相关。
指针值
指针变量的数值是存储单元的地址,但不是任意存储单元的地址,对于int类型的指针变量,,其数值是分配给用于存储类型为int的数据的地址连续的4个存储单元中的第一个存储单元的地址,对于存储单元分配过程;类型int的指针变量的数值只能是0x0012ff7c、0x0012ff80、0x0012ff84、0x0012ff88,而double类型的数据的地址连续的8个存储的那元的第一个存储单元的地址只能是0x0012ff68、0x0012ff70。
指针的类型
- 确定了指针的数值是存储该类型数据所需要的一组存储单元中第一个存储单元的地址</