指针的相关概念和定义方法

指针的相关概念

操作系统给每个存储单元分配了一个编号,从0x00 00 00 00 ~0xff ff ff ff,这个编号咱们称之为地址。
指针就是地址。
指针变量:是个变量,是个指针变量,即这个变量用来存放一个地址编号。
在32位平台下,地址总线是32位的,所以地址是32位编号,所以指针变量是32位的即4个 字节。
注意
  1. 无论什么类型的地址,都是存储单元的编号,在 32位平台下 都是4个字节, 即任何类型的指针变量都是4个字节大小。
  2. 对应类型的指针变量,只能存放对应类型的变量的地址。
    e.g.:整型的指针变量,只能存放整型变量的地址
扩展
字符变量 char ch; ch占1个字节,它有一个地址编号,这个地址编号就是ch的地址
整型变量 int a; a占4个字节,它占有4个字节的存储单元,有4个地址编号。

指针的定义方法

  1. 简单的指针 :
    数据类型 *  指针变量名;
    int * p;//定义了一个指针变量p
    在 定义指针变量的时候 * 是用来修饰变量的,说明变量p是个指针变量。
    变量名是 p
  2. 关于指针的运算符
    & 取地址 、 *取值。
    &:获取一个变量的地址
    *:在定义一个指针变量时,起到标识作用,标识定义的是一个指针变量。
    除此之外其他地方都表示获取一个指针变量保存的地址里面的内容。
     #include <stdio.h>
     int main(int argc, char *argv[])
    { 
        //定义一个普通变量 
        int a = 100; 
        //定义一个指针变量
        int *p; 
    
        //给指针变量赋值
        //将a的地址保存在p中
        p = &a;
        
        printf("a = %d %d\n", a, *p);
        printf("&a = %p %p\n", &a, p);
    
        return 0; 
    }
    执行结果

     

    扩展:如果在一行中定义多个指针变量, 每个指针变量前面都需要加*来修饰。
    int *p,*q; //定义了两个整型的指针变量p和q
    int * p,q; //定义了一个整型指针变量p,和整型的变量q
  3. 指针大小
    在32位系统下,所有类型的指针都是4个字节。
    因为不管地址内的空间多大,但是地址编号的长度是一样的,所以在32位操作系统中,地
    址都是四个字节。
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        char *a;
        short *b;
        int *c;
        long *d;
        float *e;
        double *f;
    
        printf("sizeof(a) = %d\n", sizeof(a));
        printf("sizeof(b) = %d\n", sizeof(b));
        printf("sizeof(c) = %d\n", sizeof(c));
        printf("sizeof(d) = %d\n", sizeof(d));
        printf("sizeof(e) = %d\n", sizeof(e));
        printf("sizeof(f) = %d\n", sizeof(f)); 
    
        return 0; 
    }
    执行结果

     

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六月悉茗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值