笔试题之指针结合数组的精讲2

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk

      ⸝⋆   ━━━┓
     - 个性标签 - :来于“云”的“羽球人”。 Talk is cheap. Show me the code
┗━━━━━━━  ➴ ⷯ

本人座右铭 :   欲达高峰,必忍其痛;欲戴王冠,必承其重。

👑💎💎👑💎💎👑 
💎💎💎自💎💎💎
💎💎💎信💎💎💎
👑💎💎 💎💎👑    希望在看完我的此篇博客后可以对你有帮助哟

👑👑💎💎💎👑👑   此外,希望各位大佬们在看完后,可以互赞互关一下,看到必回
👑👑👑💎👑👑👑   

 接下来可是满满的干货,咱也就是说,没点底子咱还真拿捏不了

 笔试题1

草图如下:

笔试题2

分析如下:

        int a[4] = { 1, 2, 3, 4 };//在VS环境下,采用小端存储,
        int* ptr1 = (int*)(&a + 1);// 分析同第6行代码分析
        int* ptr2 = (int*)((int)a + 1);//对于这个我们需要知道数据是如何在内存中存储的,注意a这里是首元素的地址,(int)a强转成int 类型数据(int)a+1此时向后移动一个字节
        printf("%x %x", ptr1[-1], *ptr2);// %x是以16进制打印,补充 :%d 是10进制打印  %o是以8进制
        return 0;

 

 

 &a+1 :跳过整个数组的地址,此时对应指针类型int *[5] 即数组指针,(int*)(&a + 1)表示强转成int*类型指针

ptr1[-1] 等价于 *(ptr - 1),访问的是元素4

  数组a在内存中的存储如下:

int* ptr2 = (int*)((int)a + 1);

因为此时ptr2指针类型是int*,所以解引用访问4个字节,即 00 00 00 02 

又因为VS是小端存储

所以以16进制打印出来的是

20000000

笔试题3

            {

        int a[3][2] = { (0,1), (2,3), (4,5) };

        //注意这里是圆括号而不是花括号,圆括号里面是逗号表达式
            int* p;
            p = a[0];    //指向第一行元素的位置
            printf("%d", p[0]);//  1    访问的是第一行第一个位置
        return 0;
    }

草图如下: 

 

笔试题4
int main()
{int a[5][5];//二维数组,a对应的类型  int(*)[5]int(*p)[4];//数组指针,指向数组元素个数为4p = a;printf("%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);// p[4] = *(p+4) 跳过4个int(*)[4]的数组     a[4] = *(a+4):跳过4个int (*)[5]的数组return 0;return 0;
}

分析如下:

 

首先我们要知道几个点:

二维数组我们可以把他看成一维数组的数组

对于指针加整数,跳过几个元素,取决于指针类型,以及是指向数组还是指向元素

对于数组a而言,对应类型int(*)[5] 

a+1  跳过1个类型为int(*)[5]的数组

 对于p而言,对应类型int(*)[4] 

p+1   跳过1个类型为int(*)[4]的数组

指针相减(大减小)得到的是元素个数

笔试题5

int main()
{int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int* ptr1 = (int*)(&aa + 1);  // &aa+1跳过整个数组int* ptr2 = (int*)(*(aa + 1));// aa类型int(*)[5] 此时跳过一维数组printf("%d,%d", *(ptr1 - 1), *(ptr2 - 1));//  10   5  return 0;
}

 分析如下:

 

笔试题6
    char* a[] = { "work","at","alibaba" };// 这是一个字符指针数组,数组内容是字符串,字符串传递的是第一个字符的地址char** pa = a;//数组名表示数组首元素地址,pa此时指向第一个字符串的起始位置pa++;//因为pa所对应的指针类型是char**,此时pa++跳过一个元素,即指向第二个字符串的起始位置printf("%s\n", *pa);//  at   %s是以字符串的形式打印所以遇到\0即结束打印

解析如下:

首先我们要知道以下几点:

1)这是一个字符指针数组,它的每一个元素是字符串

2)数组名的含义(包括2种特殊情况)

3)指针加整数跳过几个元素

   char** pa = a;

  //数组名表示数组首元素地址,pa此时指向第一个字符串的起始位置
    pa++;

   //因为pa所对应的指针类型是char**,此时pa++跳过一个元素,即指向第二个字符串的起始位置

 要是感觉还不错的话,麻烦各位大佬们给个关注,点个赞呗,您的支持是我不断前进的动力,都看到这里了,想必和我一样对编程世界怀着同样的期待~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/159996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python大数据笔记_day11_Hadoop进阶之MR和YARNZooKeeper】

MR 单词统计流程 已知文件内容: hadoop hive hadoop spark hive flink hive linux hive mysql ​ input结果: k1(行偏移量) v1(每行文本内容)0 hadoop hive hadoop spark hive 30 flink hive linux hive mysql map结果:k2(split切割后的单词) v2(拼接…

webpack plugin

1、基本写法及使用 这里用到 emit 钩子 及make 钩子,前者是串行后者是并行 /*** 1.webpack加载webpack.config.js中所有配置,此时就会new TestPlugin(),执行插件的constructor2.webpack创建compiler对象3.遍历所有plugins中插件&#xff0…

灵活运用Vue 3中的setup函数—深入解析Composition API

新建项目,项目主入口为App.vue(主组件),新建child.vue(子组件)。 1.1 setup 执行 时机问题 1.在主组件里引入子组件和ref: import {ref} from vue import child from ./components/child.vue2…

HTML实现简易计算器

随便写的&#xff0c;可能有bug&#xff0c;可以在评论区指出哈。 HTML代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>AI简易计算器</title> </head> <body> <table id"c…

【小黑送书—第九期】>>重磅!这本30w人都在看的Python数据分析畅销书:更新了!

想学习python进行数据分析&#xff0c;这本《利用python进行数据分析》是绕不开的一本书。目前该书根据Python3.10已经更新到第三版。 Python 语言极具吸引力。自从 1991 年诞生以来&#xff0c;Python 如今已经成为最受欢迎的解释型编程语言。 pandas 诞生于2008年。它是由韦…

Mysql中自增主键是如何工作的

自增主键的特点是当表中每新增一条记录时&#xff0c;主键值会根据自增步长自动叠加&#xff0c;通常会将自增步长设置1&#xff0c;也就是说自增主键值是连续的。那么MySQL自增主键值一定会连续吗&#xff1f;今天这篇文章就来说说这个问题&#xff0c;看看什么情况下自增主键…

postman设置接口关联这样做,薪资直接涨3k

postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个过程的实现称为关联。 在postman中实现关联操作的步骤如下&#xff1a; 1、利用postman获取上一个接口指定的返回值…

kubernetes资源管理

kubernetes资源管理 文章目录 kubernetes资源管理1.资源管理介绍2.YAML语言介绍3.资源管理方式3.1 命令式对象管理3.2 命令式对象配置3.3 声明式对象配置扩展&#xff1a;kubectl在node节点上运行 1.资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0…

c语言编程(模考3)统计字符串中数字字符的个数

统计字符串中数字字符的个数 #include<stdio.h> int main(){char inputString[100];int digitCount 0;printf("请输入一个字符串&#xff1a;");scanf("%s",inputString);for(int i0;inputString[i]!\0;i){if (inputString[i]>0&&inpu…

jQuery的学习(一篇文章齐全)

目录 Day29 jQuery 1、jQuery介绍 2、jQuery的选择器 2.1、直接查找 2.2、导航查找 3、jQuery的绑定事件 案例1&#xff1a;绑定取消事件 案例2&#xff1a;模拟事件触发 4、jQuery的操作标签 tab切换案例jQuery版本&#xff1a; 案例1&#xff1a; 案例2&#xff…

Thread的常用方法

一&#xff0c;常用方法 二&#xff0c;案例 父类&#xff1a; package ThreadLianXi;import ThreadLianXi.ZhiLeiA;public class Name {public static void main(String[] args)throws Exception{Thread t1 new ZhiLeiA("1号");//修改名字t1.setName("1号&quo…

中国最常用的制作报表的软件有哪些?

​随着信息化时代的浪潮席卷而来&#xff0c;报表制作软件已经成为了企业管理中的得力助手。在中国的大地上&#xff0c;有许多优秀的报表制作软件&#xff0c;而本文将为您揭示五位佼佼者&#xff0c;其中更以VeryReport报表软件为首选。 编辑搜图 请点击输入图片描述&#x…

华为昇腾开发板共享Windows网络上网的方法

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 具体参考文章&#xff1a;linux(内网&#xff09;通过window 上网。具体是两步&#xff1a;一是在windows上设置internet连接共享。二是打开Atlas 200I D…

【性能测试学习】2023最有效的7大性能测试技术(建议收藏)

进入互联网时代&#xff0c;性能测试显得越来越重要&#xff0c;移动应用、web应用和物联网应用都需要进行性能测试和性能调优&#xff0c;而进行性能和负载测试会产生了大量的数据&#xff0c;这些数据难以分析。除了数据分析&#xff0c;我们还会遇到其它一些困难和挑战。 今…

win10 eclipse安装教程

前言&#xff1a;安装eclipse之前必须安装JDK&#xff0c;JDK是编译环境&#xff0c;eclipse是集成开发平台。 一、JDK的安装 Java Development Kit 简称 JDK (一). 官方下载地址&#xff1a; Java Archive Downloads - Java SE 8u211 and later (oracle.com) 找到&#xf…

2020年计网408

第33题 下图描述的协议要素是&#xff08; &#xff09;。I. 语法 II. 语义 III. 时序 A. 仅 I B. 仅 II C. 仅 III D. I、II 和 III 本题考察网络协议三要素的相关知识。 网络协议的三要素分别是语法、语义、同步&#xff08;时序&#xff09;。语法&#xff1a;定义收发双…

10月起个税系统升级,3个月个税零申报将收到提示

近日&#xff0c;自然人电子税务局扣缴端升级了&#xff0c;升级后对于工资薪金收入连续三个月为零的纳税人&#xff0c;系统会自动出现以下提示。这个提示主要为了避免企业长期对已经离职的员工进行零申报&#xff0c;导致数据不准确和资源浪费。HR在申报个税时&#xff0c;一…

OSG文字-渐变文字(4)

渐变文字(osgText::FadeText类)继承自osgText::Text类继承关系图如图9-6所示 图9-6 osgText::FadeText的继承关系图 从继承关系图中可以看出&#xff0c;它继承自osgText::Text类&#xff0c;因此&#xff0c;它具备一般文字属性的设置方法这里不再重复说明。创建渐变文字与一般…

​软考-高级-系统架构设计师教程(清华第2版)【第14章 云原生架构设计理论与实践(P496~526)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第14章 云原生架构设计理论与实践&#xff08;P496~526&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

[点云分割] 区域增长分割

效果&#xff1a; 原始数据 分割结果 代码&#xff1a; #include <iostream> #include <vector> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> // 各种点云数据类型 #include <pcl/search/search.h> #include <pcl/search/kdtr…