指针变量的值
“指针变量的值”是指针本身存储的数值,这个值将被编译器当作一个地址,而不是 一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址长度都为32位。“指针所指向的内存区“就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。
一个指针的值是A,即是说该指针指向了以A为首地址的一片内存区域;反之,说一个指针指向了某内存区域,即是说该指针的值是这块内存区域的首地址。
指针的运算
指针可以进行一些运算,但并非所有的运算都是合法的,指针的运算主要局限在加减算术和其他一些为数不多的特殊运算。
p=&a:将变量a的地址赋给p
p=array:将数组的首地址赋给p
p=&array[i]:将数组元素的地址赋给P
p=p1:将指针p1所指向的地址赋给p
使用递增/递减运算符(++ 和 --)将指针递增或递减
一个类型为 T 的指针的移动,
以 sizeof(T)为移动单位。
注意:不能将指针的值赋给一个整型变量,也不能将一个整数赋给指针
“指针变量的值”是指针本身存储的数值,这个值将被编译器当作一个地址,而不是 一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址长度都为32位。“指针所指向的内存区“就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。
一个指针的值是A,即是说该指针指向了以A为首地址的一片内存区域;反之,说一个指针指向了某内存区域,即是说该指针的值是这块内存区域的首地址。
指针的运算
指针可以进行一些运算,但并非所有的运算都是合法的,指针的运算主要局限在加减算术和其他一些为数不多的特殊运算。
p=&a:将变量a的地址赋给p
p=array:将数组的首地址赋给p
p=&array[i]:将数组元素的地址赋给P
p=p1:将指针p1所指向的地址赋给p
使用递增/递减运算符(++ 和 --)将指针递增或递减
一个类型为 T 的指针的移动,
以 sizeof(T)为移动单位。
注意:不能将指针的值赋给一个整型变量,也不能将一个整数赋给指针