欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

小白对c语言指针的基础总结

程序员文章站 2022-12-01 17:27:39
指针 指针是指向一片内存空间的地址,指针变量是变量,是存放一片内存空间首地址的变量,我们一般所说的指针都是指针变量。 指针的定义及赋值: 类型说明 *变量名 列如 int *p; 区别 int *p=NULL 与 *p=NULL 指针的大小 指针运算 需要注意的是指针的类型,+1加的是一个指针类型的 ......

指针

指针是指向一片内存空间的地址,指针变量是变量,是存放一片内存空间首地址的变量,我们一般所说的指针都是指针变量。

指针的定义及赋值:

  类型说明 *变量名  列如 int *p; 

  区别 int *p=NULL 与 *p=NULL 

  

int *p=NULL;    //定义指针变量p,并且同时将p的值设置为0x00000000,不是把*p的值设置为0x0000000,这个过程叫做初始化

int *p;
*p=NULL;    //定义指针变量p,将*p的值设置为NILL,即给p所指向的内存赋值NULL,但是p所指的内存可能是非法的,编译可能会显示内存访问错误,那么做出如下修改,给它一块合法的内存。

int i=10;
int *p=&i;
*p=NULL;    //这时i中的值由10变成了0,而p值本身没变,即内存地址没有改变

 


 

指针的大小

int *P;
sizeof(p);    //指针的大小根据计算机的位数确定,32位机大小为4个字节,64位机大小为8个字节。

 


指针运算

  需要注意的是指针的类型,+1加的是一个指针类型的大小。

  

int a[10];
int *p=&a;    //+1,加了sizeof(int)*1个字节,而不是加sizeof(int[10])*1个字节

 


指针的使用类型

  指针形式

  数组形式

  

int a[10];
int *P=a;
p[0]=1;    //指针的数组形式        
*(p+1)=2;    //指针的指针形式

 


 

通过指针修改内容的汇编过程

  1.找到指针变量的地址

  2.通过指针变量的地址,找到内容的地址

  3.通过地址找到内容

  4.修改内容