c语言指针的基本理解(1)

6 篇文章 0 订阅
#include<stdio.h>
int main(){
    /*这是一个普通的int的变量,
      将一块随机的地址赋值给b,
      地址里的数值是随机的。
     (编译器不同值会有相应的变化,我的编译器返回的是0,但不保证所有的编译器都为零)
    */
    int b;
    /*显示变量的值(此时未赋值)
     (编译器不同值会有相应的变化,我的编译器返回的是0,但不保证所有的编译器都为零)
    */
    printf("赋值前b=%d\n",b);  //赋值前b=0
    //%p以16进制返回数值,也可以用%d十进制返回
    printf("赋值前b的地址=%p\n",&b); //赋值前b的地址=0x16b4ef588
    //为变量b赋值,将21写入到b也就是0x16d103588这个地址上
    b=21;
    //显示变量的值(此时已赋值,值为21)
    printf("赋值后b=%d\n",b); // 赋值后b=21
    //显示b的地址(&为地址符)
    printf("赋值后b的地址=%p\n",&b); //赋值后b的地址=0x16b4ef588

    //建立int型变量a并把10赋值给a
    int a=10;
    //打印a的值和地址
    printf("a=%d\n",a); //a=10
    printf("a的地址=%p\n",&a); //a的地址=0x16b4ef584
    //  1、建立指针变量*pointA,此时指针指向的地址为0x0
    int *pointA;
    printf("指针的默认地址=%p\n",pointA);//指针的默认地址=0x0
    //  2、将a的地址赋值给pointA指针
    pointA=&a;
    //上面的两步可以合并为 int *pointA=&a;

    printf("pointA指向的变量地址=%p\n",pointA); //pointA的地址=0x16b4ef584
    printf("a的地址=%p\n",&a); //a的地址=0x16b4ef584
    printf("pointA的地址=%p\n",&pointA); //pointA的地址=0x16b4ef578
    printf("pointA指向的值=%d\n",*pointA); //pointA指向的值=10
    /*
        指针共三层
            *pointA: 带星号对应的是变量的值
            pointA:  对应的是变量的地址
            &pointA: 对应的是指针的地址
    */
    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值