• 指针和数组试题解析(4)字符数组部分续集


    对于指针和数组的关系!想必到目前为止,大家都已经了解差不多了!即有指针数组,数组指针,还有函数指针数组……一系列复杂关系!所以,笔者吸取学长经验,私底下窃取了一些材料,再加上仔细地思考分析,所以,决定系统的发一套指针和数组试题解析供大家分析理解!!虽然内容不是很多,但是凝聚下来的便都是精华!也是笔者精心打造,请各位老铁耐心欣赏一下!!顺便动用一下发财的小手,一键三连呀!!

    言归正传,请各位老铁仔细欣赏笔者的文章!!!

    谨记:对于字符数组,我们要跟字符串区分开!!
    下面进入笔者的指针和数组试题解析部分!
     

    1. #include <stdio.h>
    2. int main()
    3. {
    4. const char* p = "abcdef";
    5. printf("%d\n", sizeof(p)); //4
    6. printf("%d\n", sizeof(p+1)); //4
    7. printf("%d\n", sizeof(*p)); //1
    8. printf("%d\n", sizeof(p[0])); //1
    9. printf("%d\n", sizeof(&p)); //4
    10. printf("%d\n", sizeof(&p+1)); //4
    11. printf("%d\n", sizeof(&p[0]+1)); //4
    12. return 0;
    13. }

    注意,笔者的代码是在vs2022 的x86环境下进行演示的!请注意细节,若是在vs2022的x64环境下,将会出现不一样的结果!但那个结果也是正确的!

     

     若是有老铁能直接看懂,并且能够跟答案对上号,那么这篇博客,这位老铁就没有看的必要了,下面内容主要是对上面的代码的讲解!并不做其他的内容!但若是有兴趣,可以进一步欣赏!
    下面进入讲解部分
    对于: char* p = "abcdef";  而言:使用  :const char* p = "abcdef";确实比较好!因为字符串:“abcdef"是常量,不可以修改,所以用const 修饰,没有什么大问题!

    而”abcdef"作为字符串,表达式的值就是a的地址!因此将a的地址放在p里面去,而“abcdef"是字符串常量,若要让p进行维护,p可能会对字符串”abcdef"进行更改!但是由于常量字符串不能被修改!而p却是有能力(可以)去修改“abcdef",所以前面加const 显得更加严谨!!!

     

    1.sizeof(p)  : p是一个指针变量,是用来存放地址的!指针(地址)的大小就是4/8个字节!

    2.sizeof(p+1)  : p里面存放的是地址!是char*  类型的指针!p+1指:char* 的指针+1,但之后还是个地址!是地址就是4/8个字节!

    3.sizeof(*p)  : p为char* 类型的指针,对其解引用,只能访问1个字节!

    4. sizeof(p[0])  : p[0]相当于:*(p+0),就是第一个元素的大小,1个字节!

         *p相当于*(p+0),也相当于:p[0]

    5. sizeof(&p)  : &p取出的是整个数组的地址!但是整个数组的地址也是地址!是地址就是4/8个字节!

    6.sizeof(&p+1)  : &p 是去除数组首元素的地址,而&p+1跳出整个数组,但是仍然是数组:4/8个字节!

    7.sizeof(&p[0]+1)  : &p[0] 取出的是数组首元素的地址!而&p[0]+1 则是往后走一个字节,指的是数组第二个元素的地址!仍然为:4/8个字节!

    上述代码的运行结果为:

     本篇文章就到此结束!有不同疑问,请及时与笔者进行联系!!

  • 相关阅读:
    【斯坦福大学公开课CS224W——图机器学习】四、Link Analysis: PageRank
    [Python进阶] 获取计算机相关信息:WMI
    LM小型可编程控制器软件(基于CoDeSys)笔记二十八:错误3803
    网络安全(黑客)技术——自学2024
    Html中写Unicode, 十进制用&#开头, 十六进制用&#x开头
    Amazon EMR 上的 Alluxio 集成实践
    XmlBeanDefinitionReader解读
    餐饮外卖小程序商城的作用是什么
    JVM运行时数据区——直接内存
    vue状态管理工具
  • 原文地址:https://blog.csdn.net/weixin_64308540/article/details/126917403