对于C语言指针的理解

对于C语言指针的理解

学习c语言中最难得部分就是指针了

  1. 指针是什么?
    指针本身是一个变量,它存储的是数据在内存中的地址而不是数据本身的值。它的定义如下:

  2. 指针的形式:
    类型 *变量名
    比如int *p就是一个整型的指针
    char *p则是一个字符型的指针

  3. 如何把一个元素的地址给指针p
    p=&a将变量a的地址指针p.

  4. 如何得到指针p对应的值
    a=*p是将指针p对应的值变量a

  5. 指针的算术运算
    p++ 是将地址++,而不是指针p地址上对应值++
    举例:

int a=5;
int *p=&a;
p++;

注:整型在内存中占四个字节
假设原来a的值储存在地址0x0012FF2C
那么当int *p=&a后p的值则为0x0012FF2C
p++后p的值为0x0012FF31
p--同理

  1. 简化指针理解
    指针就像是一个抽屉抽屉里装的东西就是指针地址上对应的值

  2. 指针的输出

printf("%p",p)    //输出结果是一个地址(p指向的变量的地址)。
printf("%d",*p)   //输出结果是p指向的变量的值。
printf("%d",&p)   //输出结果是一个地址(指针p的地址,因为指针也是一个变量所以也有对应地址来存储)

你可能感兴趣的:(C语言指针,c语言指针)