C语言笔记——指针基础——认识指针!掌握指针!向c语言大佬更近一步!!!

指针基础

  • 指针的概念:

    • 一个专门用来存放内存地址的变量,指针也就是指针变量

  • 地址:比如 &a 是一个地址,也是一个指针,&a 指向变量 a

    • 专门用于存储地址的变量,又称指针变量。

  • 格式

    • 类型 *指针变量名

    • 解释:

      • “类型” : 指针变量指向的内存空间存放的数据类型

      • “指向” : 如果我保存了你的地址,那么就说我指向你

      • “*” :定义指针变量的固定格式

     // 系统中给a申请了4个字节的内存空间 
        int a = 10;
        printf("a addr:%p\n",&a);
        // 定义一个指针变量用于存放a的地址
        int *p = &a;
        // 第一部分:*p :首先p是一个变量,占用内存8个字节,存放了a的地址
        // 第二部分:int 指的是指针变量所指向的内存空间放了什么类型的数据
        printf("p的值:%p addr : %p\n",p,&p);
        printf("a的值:%d addr : %p\n",a,&a);

  • 指针的定义:

// 用于存储 int  型数据的地址,p1 被称为 int  型指针,或称整型指针
int *p1; 
// 用于存储 char 型数据的地址,p2 被称为 char 型指针,或称字符指针
char *p2; 
// 用于存储double型数据的地址,p3 被称为 double 型指针
double *p3; 
  • 指针的赋值:赋给指针的地址,类型需跟指针的类型相匹配。

    int a = 100;
    p1 = &a; // 将一个整型地址,赋值给整型指针p1
​
    char c = 'x';
    p2 = &c; // 将一个字符地址,赋值给字符指针p2
​
    double f = 3.14;
    p3 = &f; // 将一个浮点地址,赋值给浮点指针p3
  • 指针的索引:通过指针,取得其指向的目标

    *p1 = 200; // 将 p1 指向的目标(即a)修改为200,等价于 a = 200;
    *p2 = 'y'; // 将 p2 指向的目标(即c)修改为'y',等价于 c = 'y';
    *p3 = 6.6; // 将 p3 指向的目标(即f)修改为6.6,等价于 f = 6.6;
  • 指针的尺寸

    • 指针尺寸指的是指针所占内存的字节数

    • 指针所占内存,取决于地址的长度,而地址的长度则取决于系统寻址范围,即字长

    • 结论:指针尺寸只跟系统的字长有关,跟具体的指针的类型无关

    • 32位系统,指针的大小占用4字节

    • 64位系统,指针的大小占用8字节

    // 指针大小
    int a = 10;
    char b = 'c';
    float c = 85.5;
    ​
    char *p1 = &b;
    int *p2 = &a;
    float *p3 = &c;
    printf("p1 size : %ld\n",sizeof(p1));
    printf("p2 size : %ld\n",sizeof(p2));
    printf("p3 size : %ld\n",sizeof(p3));
  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值