说实话,指针真的挺绕的,今天看了温习了一下指针变量的有关问题,发现了很多不足,仅列几点说说。
一.指针变量的基本概念:
二.指针变量的定义:
(1)指针类型说明,即定义变量为一个指针变量;
(2)指针变量名;
(3)变量值(指针)所指向的变量的数据类型;
其一般形式:类型说明符 * 变量名
其中*是表示这是一个指针变量,变量各即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。
例子:int *p:
表示p是一个指针变量,它的值是某个整型变量的地址。或都是p指向一个整型的变量。至于p究竟指向哪一个整型变量应由p赋值的地址来决定。
float *p1:/*p1是指向浮点型的指针变量*/
char *p2:/*p2是指向字符变量的指针变量*/
int *p3:/*p3是指向整型变量的指针变量*/
PS:一个指针变量只能指向同类型的变量,如p1只能指向float浮点变量,不能时而指向一个浮点变量,时而又指向一个字符变量。
三.关于指针变量的占几个字节的问题:
众多周知:sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
指针存的是一个地址,在32位操作系统里面,最大寻址空间位0~2^32-1,即4个字节(32位)就可以表示,相应的在64位操作系统环境中用8个字节表示指针。指针本身所占空间大小与所指对象所占空间大小无关,只与操作系统有关。
(附图可见:额,我是64位系统的。)