指针的基本概念
每个变量都被存放在从某个内存地址(以字节为单位)开始的若干字节中
"指针"也被称作"指针变量",大小为4个字节(在64位编译器中,也优肯为8个字节)的变量,其内容代表一个内存地址。
通过指针,能够对该指针指向的内存区域进行读写。
如果把内存的每个字节都想象成宾馆的一个房间,那么内存地址相当于房间号,而指针里存放的,就是房间号
指针的定义
类型名 * 指针变量名;
int *p; //p是一个指针,变量p的类型是int *
char *pc;//pc是一个指针,变量p的类型是 char *
float *pf;//pf是一个指针,变量p的类型是float *
通过指针访问其指向的内存空间
int *p=(int *)40000;
//往地址40000处起始的若干个字节的内容空间里写入5000
*p=5000;
//将地址40000处起始的若干字节的内容赋值给n
int n=*p
"若干"=sizeof(int),因为int *p
指针定义总结
T * p;//T可以是任何类型的名字,比如int,double
p 的类型是:T*
*p的类型是:T
通过表达式 *p,可以读写从地址p开始的sizeof(T)个字节
*p 等价于存放在地址p处的一个类型的变量
* 简介引用运算符
sizeof(T*) 4字节(64位计算机上可能8字节)
指针的用法
(通常将指针指向一个变量)
char ch1='A';
char *pc=&ch1;//使得pc指向变量ch1
&:取地址运算符
&x:变量x的地址(即指向x的指针)
对于类型为T的变量x,&x 表示变量x的地址(即zhixiangx的指针)&x 的类型是T*