C语言指针详解(4)———找工作必看指针笔试题汇总

指针对于编程工作的重要性

C语言指针在找工作中具有重要性。以下是几个原因:

1.高效的内存管理:C语言指针可以帮助程序员高效地管理内存,包括动态内存分配和释放,以及数据的访问和操作。这对于开发性能优化的应用程序非常重要,如嵌入式系统、图形处理等领域。

2.与底层系统交互:C语言常用于与底层系统、硬件和操作系统进行交互。指针在这些场景中扮演重要角色,如访问硬件寄存器、操作设备驱动程序、进行系统级编程等。

3.数据结构和算法:指针是实现复杂数据结构和算法的基础,如链表、堆栈、队列、树等。这些数据结构和算法在面试和工作项目中经常使用,对理解和应用指针至关重要。

4.代码优化和调试:指针的使用可以优化代码的执行效率,并帮助调试程序。程序员需要熟练掌握指针的概念和技巧,以有效地优化代码和解决程序错误。

5.C语言编程面试:在找工作过程中,很多公司会进行C语言编程面试,测试候选人对C语言的理解和应用能力。指针是C语言中的重要概念,面试官通常会提问关于指针的问题,如指针运算、指针和数组之间的关系等。

题目1

printf输出什么?

int main()
{int aa[2][5] = { 10,9,8,7,6,5,4,3,2,1 };int* ptr1 = (int*)(&aa + 1);//第二行1后面的地址,&aa+1相当于跳过了整个数组int* ptr2 = (int*)(*(aa + 1));//第二行起始地址,即5printf("%d,%d", *(ptr1 - 1), *(ptr2 - 1));//ptr1-1,即从1后面的地址变为1,ptr2-1,即从5减到上一行的6return 0;
}

解析:输出1和6
如图所示
在这里插入图片描述

题目2

printf输出什么?

int main()
{int a[5] = { 5, 4, 3, 2, 1 };int* ptr = (int*)(&a + 1);printf("%d,%d", *(a + 1), *(ptr - 1));return 0;
}

解析:输出4和1
如图所示
在这里插入图片描述

题目3

假设p 的值为0x100000。 如下表表达式的值分别为多少?
已知,结构体Test类型的变量大小是20个字节

struct Test
{int Num;char* pcName;short sDate;char cha[2];short sBa[4];
}*p;int main()
{printf("%p\n", p + 0x1);printf("%p\n", (unsigned long)p + 0x1);printf("%p\n", (unsigned int*)p + 0x1);return 0;
}

解析:0x100014,0x100001,0x100004

%p是打印地址,假设p=(struct Test*)的地址为0x100000

printf(“%p\n”, p +0x1);

p+0x1就相当于p+1,结构体指针+1,跳过一个结构体的大小,即跳过20个字节0x100000是一个16进制的,所以+20后变为0x100014

printf(“%p\n”, (unsigned long)p +0x1);

强制变换为无符号整形,整数+1就是+1,即+1后变为0x100001

printf(“%p\n”, (unsigned int*)p + 0x1);

强制转换为无符号指针整形,指针+1即跳过四个字节,即变为0x100004

题目4

printf输出什么?

int main()
{int a[4] = { 1, 2, 3, 4 };int* ptr1 = (int*)(&a + 1);//跳过整个数组,在4后面int* ptr2 = (int*)((int)a + 1);printf("%x,%x", ptr1[-1], *ptr2);//ptr1[-1]相当于*(ptr1-1),为4return 0;
}

解析:4,20000000
如图所示
在这里插入图片描述
在这里插入图片描述

题目5

printf输出什么?

#include <stdio.h>
int main()
{int a[3][2] = { (0, 1), (2, 3), (4, 5) };int* p;p = a[0];printf("%d", p[0]);//1return 0;
}

解析:1

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

注意这里是()不是{},是一个逗号表达式,是个坑,此数组应为{1,3,5,0,0,0}
数组应该为如下这样

1 3
5 0
0 0

最后输出结果为1.

题目6

printf输出什么?

int main()
{int a[5][5];int(*p)[4];//数组指针p = a;//类型有些不合适//a--int (*)[5]//p--int (*)[4]printf("%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);return 0;
}

解析:FFFFFFFC,-4

p = a;这句代码有点问题,类型有些不合适 ,原因如下:

a–int (※)[5] p–int (※)[4]

更详细解析见下图所示

在这里插入图片描述

题目7

printf输出什么?

#include <stdio.h>
int main()
{char* a[] = { "work","at","alibaba" };//work\0   at\0   alibaba\0char** pa = a;//pa的类型是char**,是一个二级指针pa++;printf("%s\n", *pa);return 0;
}

解析:at
如下图
在这里插入图片描述

总结

总的来说,熟练掌握C语言指针的概念和使用方法对于找工作非常重要。它可以帮助你在编程面试中表现出良好的技术能力,并在实际工作中高效地处理内存和数据结构。

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

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

相关文章

操作系统学习笔记---计算机系统概述

目录 概念 功能和目标 特征 并发 共享&#xff08;资源共享&#xff09; 虚拟 异步 发展与分类 手工操作阶段&#xff08;无OS&#xff09; 批处理阶段 单道批处理系统 多道批处理系统 分时操作系统 实时操作系统 网络操作系统 分布式计算机系统 个人计算机操…

Ubuntu安装Android Studio

一、Android Studio安装 官方教程&#xff1a;安装 Android Studio | Android Developers 1、下载&#xff1a;Download Android Studio & App Tools - Android Developers&#xff0c;选择linux版本 2、 提取/解压 将下载的安装包提取出来 3、 64位ubuntu系统&#…

Bash脚本学习:AWK, SED

1. AWK AWK 是一种编程语言&#xff0c;设计用于处理文件或数据流中基于文本的数据&#xff0c;或者使用 shell 管道。 可以将 awk 与 shell 脚本结合使用或直接在 shell 提示符下使用。 以上展示使用AWK分别打印第一个位置变量和第二个位置变量。 建立一个文档 csvtest.cs…

无涯教程-JavaScript - MATCH函数

描述 MATCH函数在单元格范围内搜索指定的项目,然后返回该项目在该范围内的相对位置。 当您需要某个项目在范围中的位置而不是项目本身时,请使用MATCH而不是LOOKUP函数之一。如。您可以使用MATCH函数为INDEX函数的row_num参数提供一个值。 语法 MATCH (lookup_value, lookup…

【数据结构】红黑树的删除(抽丝剥茧,带你理清每一种情况)

文章目录 前言正文1.所删除的结点为红色1.1delnode的左右都为空1.2delnode的左为空&#xff0c;且右不为空1.3delnode的左不为空&#xff0c;右为空1.4delnode的左不为空&#xff0c;且右不为空 2.所删除的结点为黑色2.1 调整后所在树每条路径黑色结点的个数不发生变化2.1 左结…

【问题处理】GIT合并解决冲突后,导致其他人代码遗失的排查

GIT合并解决冲突后&#xff0c;导致其他人代码遗失的排查 项目场景问题描述分析与处理&#xff1a;1. 警告分析2. 文件分析3. 问题关键4. 验证 解决策略总结 &#x1f4d5;作者简介&#xff1a;战斧&#xff0c;从事金融IT行业&#xff0c;有着多年一线开发、架构经验&#xff…

ChatGPT追祖寻宗:GPT-2论文要点解读

论文地址&#xff1a;Language Models are Unsupervised Multitask Learners 上篇&#xff1a;GPT-1论文要点解读 在上篇&#xff1a;GPT-1论文要点解读中我们介绍了GPT1论文中的相关要点内容&#xff0c;其实自GPT模型诞生以来&#xff0c;其核心模型架构基本没有太大的改变&a…

华为云云服务器云耀L实例评测 | 在华为云耀L实例上搭建电商店铺管理系统:一次场景体验

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

java写一个用于生成雪花id的工具类

我们创建一个类 叫 SnowflakeIdGenerator 作为生成雪花id的工具类 然后 编写代码如下 public class SnowflakeIdGenerator {private static final long START_TIMESTAMP 1609459200000L; // 设置起始时间戳&#xff0c;可以根据需要进行调整private static final long WORKER…

HBase 记录

HBase 管理命令 hbase hbck -details TABLE_NAME hbase hbck -repair TABLE_NAMEHBase概览 Master、RegionServer作用 RegionServer与Region关系 数据定位原理 https://blogs.apache.org/hbase/entry/hbase_who_needs_a_master RegionServer HBase Essentials.pdf (P25)…

四种常用的自动化测试框架

一直想仔细研究框架&#xff0c;写个流水账似的测试程序不难&#xff0c;写个低维护成本的测试框架就很难了&#xff0c;所以研究多种测试框架还是很有必要的&#xff0c;知道孰优孰劣&#xff0c;才能在开始编写框架的时候打好基础&#xff0c;今天读到了KiKi Zhao的翻译文章&…

中标麒麟--国产操作系统-九五小庞

那么&#xff0c;我国国产操作系统现状到底如何呢&#xff1f; 自 1999 年徐冠华部长一语点破我们的产业软肋之后&#xff0c;国产操作系统起步于国家“七五”计划期间&#xff0c;目前国产操作系统均是基于Linux内核进行的二次开发&#xff0c;中国国产操作系统进入Linux元年…

【网络】计算机网络基础

Linux网络 对网络的理解 在网络传输中存在的问题&#xff1a; 找到我们所需要传输的主机解决远距离数据传输丢失的问题怎么进行数据转发&#xff0c;路径选择的问题 有问题&#xff0c;就有解决方案&#xff1b; 我们把相同性质的问题放在一起&#xff0c;做出解决方案 解…

【Markdown】图片缩放

▚ 01 原图表示 语法为&#xff1a; ![替代文本](图片链接地址)其中&#xff0c;替代文本是在无法显示图片时显示的替代文本&#xff0c;而图片链接是指向图片的URL或相对路径。 例如&#xff0c;插入Panda图片&#xff1a; ![panda](https://img-blog.csdnimg.cn/e5f3…

(高频面试1)Redis缓存穿透、缓存击穿、缓存雪崩

目录 一&#xff1a;缓存数据 1.1 应用场景 1.2&#xff1a;缓存数据出现的问题 1.2.1 缓存穿透 1.2.2 解决办法 1.2.3 缓存击穿 1.2.4 解决办法 1.2.5 缓存雪崩 1.2.6 解决办法 一&#xff1a;缓存数据 1.1 应用场景 数据库查询结果缓存是一种常见的缓存应用场景&a…

MybatisPlus(5)

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 上篇讲了增删的操作&#xff0c;这篇讲修改操作中的一个问题以及它对应的…

DataX实现Mysql与ElasticSearch(ES)数据同步

文章目录 一、Linux环境要求二、准备工作2.1 Linux安装jdk2.2 linux安装python2.3 下载DataX&#xff1a; 三、DataX压缩包导入&#xff0c;解压缩四、编写同步Job五、执行Job六、定时更新6.1 创建定时任务6.2 提交定时任务6.3 查看定时任务 七、增量更新思路 一、Linux环境要求…

加密算法发展简介

1&#xff1a;对称加密算法 客户端加密数据和服务端解密数据&#xff0c;使用的相同的秘钥&#xff1a; 固定秘钥&#xff1a;双方约定好一个固定秘钥&#xff1b; 随机秘钥&#xff1a;双方约定每次建立连接的时候&#xff0c;某固定BYTE为秘钥&#xff1b; 缺点&#xff1a…

JK405R-SOP16录音芯片ic方案的功能简介,可以内置录音30秒-高采样率

一、简介 JK405R是一颗SOP16封装的录音芯片&#xff0c;专用于录音的应用&#xff0c;芯片内置了30秒的录音空间&#xff0c;同时还支持外扩 spiflash方便不同录音时长的应用需求。芯片内置MIC的放大器&#xff0c;并且增益可调 同时芯片还具备超低功耗&#xff0c;待机2uA。…

2023/9/17周报

摘要 本周阅读了两篇论文&#xff0c;其一为一种基于空气质量时频域特征提取的hybrid预测方法&#xff0c;另一篇为基于烛台与视觉几何群模型的 PM2.5 变化趋势特征提取与分类预测方法。在第一篇文章中&#xff0c;通过小波变化&#xff0c;对数据进行分频&#xff0c;并设计了…