第三天常量与宏和初识指针

这篇博客介绍了C语言中的#define预处理指令,用于定义常量和宏。作者解释了宏定义的工作原理,并通过例子展示了如何使用宏参数。此外,文章还探讨了内存管理和指针的概念,包括内存地址、内存单元的编号以及如何通过指针间接修改变量的值。最后,博主分享了自己学习指针的初步理解和对编程学习的态度。
摘要由CSDN通过智能技术生成
  • #define常量 与宏
    • define是一个预处理指令


      1.define定义符号
      #define MAX1000
      2.define定义宏
      #define ADD(x,y ) X+Y
      注意第二个其实是4*2+3 宏是完成替换的
      ADD被替换成2+3;也就是4*2+3
      如果想得到20;
      注意ADD(),不应该把x和y想象成两个普通的变量
      她可能是个表达式,把x和y用()括起来,宏体(x)(y)
      宏是有参数的
      ​不需要研究太深入
    • 初识指针
    • 指针:,要谈指针,先谈内存,


      买回来的内存,我们要使用它4g16g
      我们如何使用它,现实生活中对空间的使用
      我们国土面积,西安市,六号楼,找到现实生活中找到空间
      我们如何找到空间的?通过地址
      ​内存也是一样,内存是一个空间,被划分成一个一个有效的格子,我给每个格子编个号0123456,这就是内存的管理方式,这里出现了两个问题:
      内存是怎样编号的? 一个这样的内存单元是多大空间?
      其实我们计算机是32或64位;指的是有32根地址线,地址线是物理线,它可以通电,正电是1, 32根地址线通电后,有的电是正有负,正负电之分产生了1 0这样的信号
      我们把电信号转换成数字信号:1和0组成的二进制序列
      这三十根地址线,这个线产生的二进制序列的可能性
      ​可能就是三十二个全零到三十二个全一
      0000000000000000>>>>0
      .......
      0111111111111111>>>>>n
      100000000000000 >>>>>>n+1
      ......
      111111111111111 >>>>>>最后一个内存的编号
      这时候所有可能性都罗列出来了,把这个2的32次方个二进制序列就可以作为内存的编号,这些序列都可以作为内存的编号,当这些成为一个内存的编号时,我们把这个编号称为内存单元的地址
      作为编号成为地址
      这就是内存单元的编号,怎么给她地址,那这样每个内存单元都给他一个地址,总共有2的三十二次方个地址,一个内存单元给她多大空间呢
      bit byte kb mb gb 其实可以算
      我们可以管理二的32次方个内存单元 ,一个内存单元多大,我们来分析,我们假设,一个内存单元是一比特,我们就可以管理2的32次方的比特位空间,4296967296个比特位/8= 536870912字节/1024=524288kb/1024=512mb/1024=0.5gb
      我们管理的只有0.5gb,有点太小,
      c语言中最小的char - 1byte -8bit-8个地址
      这样是不是太浪费了,但是如果一个内存单元是一个字节,所以最终一个内存单元是一个字节,然后分配一个地址,有了这些基础,才知道内存单元是有地址的,这样我们就可以拿出内存单元的地址,拿出内存单元的编号,然后才有指针的概念.

      • int a 然后怎么给a分配空 间?


        我想拿出a的地址 取地址&a,取a的地址 拿出来的是第一个字节的地址,我们后面的照样都能够找的到,然后我们把他打印出来
        pa = &a //pa是用来存放地址的,在C语言中pa叫做指针变量
        pa的类型是什么?int* *说明pa是指针变量 int说明pa指向的对象是int类型的 ;指针变量如何创建 &是个单目操作符
        ​有时我们通过这个地址找到a * 解引用操作符是个单目操作符
        我们可以不直接改变a的值,可以通过地址间接改变,最后一个图,先找到10的地址,取最后一个44,作为p的地址,*p=20,返回等于20
      • 指针就是地址,指针变量的大小


        为什么是4,指针的大小是相同的,
        因为指针是用来存放地址的
        指针需要多大空间,取决于地址的储存需要多大空间
        32位 32 bit -4byte
        64位 64bit ---- 8bit
        我们32位平台,里面的指针都是4,地址都是4,地址大小都一样的, 指针大小都四个字节 ,我们改成64位程序
        •     
        • 总结:没想到这么早就学到了指针,慢慢理解,初识指针算是理解了一点点大名鼎鼎的指针的概念,准备去报课了,我室友晚上说了一句话,天天忙忙碌碌但最后发现什么也没学到,我写博客后没有发现这种空虚感,每天都挺充实的,大一的我目标急速进大厂,学历不行,只能靠实力了,真不知道还要不要熬夜,害

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值