码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 指针笔试题


    目录

    指针笔试题

    NO1.

    NO2.

    NO3.

    NO4.

    NO5.✔

    NO6.

    NO7.

    NO8.✔


    今天接着继续指针练习。🙂🙂🙂

    指针笔试题

    NO1.

    1. //指针的类型
    2. //转化后的类型
    3. //解引用访问根据指针类型访问几个字节
    4. //整型在内存中的存储------小端存储
    5. //*解引用向后访问几个字节
    1. int main()
    2. {
    3.   int a[5] = { 1, 2, 3, 4, 5 };
    4.   int *ptr = (int *)(&a + 1);
    5.   printf( "%d,%d", *(a + 1), *(ptr - 1));
    6.   return 0;
    7. }
    8. //程序的结果是什么?

    NO2.

    一定一定要注意变量的类型
    1. //由于还没学习结构体,这里告知结构体的大小是20个字节
    2. struct Test
    3. {
    4. int Num;
    5. char* pcName;
    6. short sDate;
    7. char cha[2];
    8. short sBa[4];
    9. }*p;
    10. //假设p 的值为0x100000。 如下表表达式的值分别为多少?
    11. int main()
    12. {
    13. printf("%p\n", p + 0x1);
    14. printf("%p\n", (unsigned long)p + 0x1);
    15. printf("%p\n", (unsigned int*)p + 0x1);
    16. return 0;
    17. }

    NO3.

    1. 整数在内存的存储方式
    2. 解引用访问几个字节----根据指针的类型
    3. 注意变量的类型
    4. +1,到底加几个字节
    1. int main()
    2. {
    3.   int a[4] = { 1, 2, 3, 4 };
    4.   int *ptr1 = (int *)(&a + 1);
    5.   int *ptr2 = (int *)((int)a + 1);
    6.   printf( "%x,%x", ptr1[-1], *ptr2);
    7.   return 0;
    8. }

    NO4.

    1. 逗号表达式
    2. 二维数组
    3. p[0]=*(p-0)
    1. #include
    2. int main()
    3. {
    4.   int a[3][2] = { (0, 1), (2, 3), (4, 5) };
    5.   int *p;
    6.   p = a[0];
    7.   printf( "%d", p[0]);
    8. return 0;
    9. }

    NO5.✔

    1. &p[4][2]理解
    2. %p就是打印地址,认为内存中存储的-4的补码就是地址
    1. int main()
    2. {
    3.   int a[5][5];
    4.   int(*p)[4];
    5.   p = a;
    6.   printf( "%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);
    7.   return 0;
    8. }

    NO6.

    1. 二维数组的整个数组的地址
    2. 第一行的地址
    1. int main()
    2. {
    3.   int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    4.   int *ptr1 = (int *)(&aa + 1);
    5.   int *ptr2 = (int *)(*(aa + 1));
    6.   printf( "%d,%d", *(ptr1 - 1), *(ptr2 - 1));
    7.   return 0;
    8. }

    NO7.

    1. 俄罗斯套娃
    2. ++
    3. char*
    4. char**
    1. #include
    2. int main()
    3. {
    4. char* a[] = { "work","at","alibaba" };
    5. char** pa = a;
    6. pa++;
    7. printf("%s\n", *pa);
    8. return 0;
    9. }

    NO8.✔

    +1 和 -1往哪个方向看清除
    1. int main()
    2. {
    3. char* c[] = { "ENTER","NEW","POINT","FIRST" };
    4. char** cp[] = { c + 3,c + 2,c + 1,c };
    5. char*** cpp = cp;
    6. printf("%s\n", **++cpp);
    7. printf("%s\n", *-- * ++cpp + 3);
    8. printf("%s\n", *cpp[-2] + 3);
    9. printf("%s\n", cpp[-1][-1] + 1);
    10. return 0;
    11. }

    ✔✔✔✔✔最后,感谢大家的阅读,若有错误和不足,欢迎指正!动手写一写.少说话多做事🆗🆗

    代码------→【gitee:唐棣棣 (TSQXG) - Gitee.com】

    联系------→【邮箱:2784139418@qq.com

  • 相关阅读:
    一个简单的HTML网页(千与千寻电影) 大二学生网页设计与制作 电影主题网页制作
    Easyrecovery2022硬盘磁盘U盘免费数据恢复软件
    猿创征文|体验新一代分布式数据库—OceanBase
    【Axure教程】鼠标右键显示菜单
    docker入门加实战—docker数据卷
    《微服务实战》 第二十章 Redis连接指令 客户端指令 服务器指令
    别再乱看教程了!从源码剖析JVM类加载机制,打通双亲委派机制!
    OceanBase社区版4.x核心技术解密
    OpenCV入门5:色彩空间及色彩变换
    jenkins配置钉钉机器人推送job构建信息
  • 原文地址:https://blog.csdn.net/m0_74841364/article/details/132919651
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号