iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言指针笔试题全面解析
  • 944
分享到

C语言指针笔试题全面解析

2024-04-02 19:04:59 944人浏览 薄情痞子
摘要

目录前言一、指针笔试题 1.题目如图:2.题目如图: 3.题目如图:4.题目如图:   5.题目如图:6.题目如图:7.题目如图:&

前言

通过8道指针笔试题的解析,可以充分的复习到指针的相关知识,并且题目中会结合许多之前的相关知识,希望通过本篇文章,对大家所学的知识进行一个复习。

提示:以下是本篇文章正文内容,下面案例可供参考

一、指针笔试题 

1.题目如图:

 

逐条语句分析:

①.定义了一个大小为5的整型数组,并进行了初始化

②.定义了一个整型指针变量ptr用来存放地址,这里的存放地址是(&a+1)的地址,由于是&a,所以表示的是整个数组a,所以&a+1跳过的是整个数组,这里的地址是a数组后面的一块随机变量地址。因为指针指向的是整个数组,所以它的类型是int(*)[5](数组指针),所以我们在它的前面进行强制类型转换,把它转换为(int*)类型,然后再存放到指针变量ptr内部。

③.打印出来对应的*(a+1)和*(ptr-1)的数值

图解:

 

 运行结果:

  

2.题目如图:

 

逐条语句分析:

①.定义一个结构体变量,供我们一会使用

②.p是一个地址,没有对它进行任何的改变,所以就是用16进制去进行加减操作即可,0x1就是十六进制的1,所以可以理解为p+1,打印出来对应的十六进制的地址,因为结构体的大小为20个字节,所以+1就是跳过整个结构体,就是加上整个结构体的大小,即对应的p的地址+20得到新的地址打印出来,这里加上的20是十进制我们需要把它转换为十六进制的数,即对应p的地址加上0x00000014即可

③.p在这里进行了一步无符号长整型的强制类型转换,然后再加上0x1(即十进制的1),我们想既然我们把p类型转换为了一个整型,所以+1就是单纯的+1,我们举一个简单的例子,10和1都是整型数据,10在内存的存储是0x0000000A,1在内存的存储是0x00000001,10+1 = 11 ,11对应的内存存储是0x0000000B,所以我们知道了两个整型相加,对应的地址就是+1

④.p在这里进行了一步无符号整型指针的强制类型转换,然后再加上0x1(即十进制的1),我们想既然我们把p类型转换为一个整型指针,所以加+1,跳过的是一个整型指针变量,一个整型指针变量的大小为4,所以+1对应的地址就是+4

 运行结果:

 3.题目如图:

 

逐条语句分析:

①.定义一个大小为4的整型数组,并且进行了初始化

②.定义一个整型指针变量ptr1存放的是变量的地址,这个地址与第一题的方法一致在这里不再重复,向上看第一题即可

③.这里的a单独放在括号内,代表的是数组的首元素地址,类型是(int*),在a的前面有一步强制类型转换把int*类型转换为了整型(int类型)加+1后,我们由上一题可以知道整型的数值+1地址也是+1个字节,然后再一步强制类型转换把它转换为int*的类型,把地址存储到指针变量ptr2中

④.注意这里的是%x是以十六进制的方法打印出来ptr[-1]和*ptr2

图解:

运行结果:

4.题目如图:  

 

 逐条语句分析:

①.定义了一个3行2列的二维数组,并且进行了初始化,我们看到这里面的元素,都是用圆括号括起来的,所以这里的是逗号表达式,我们知道逗号表达式的数值是取最后一个元素,所以就相当于我们的数组元素只有{1,3,5}其他的的位置没有初始化数值就都是0,所以就相当于我们的数组就是这样的int a[3][2] = {1,3,5,0,0,0}

②.定义一个指针变量p

③.指针变量p用来存放a[0]的地址,我们注意到这里的a[0],既没有&a[0]也没有sizeof(a[0]),所以这里的a[0]就是数组的首元素地址就是a[0][0]的地址,即就是数字1的地址,所以指针变量p存放的就是a[0][0]元素的地址

④.打印出来p[0]对应的元素数值,我们知道p[0] = *(p+0)所以就是对应a[0][0]的数值

图解:

运行结果:

 5.题目如图:

逐条语句分析:

①.定义一个二维数组。

②.定义一个数组指针。

③.将二维数组首地址赋值给数组指针,我们看到这里的类型是int(*)[4],而二维数组明显是有5列的所以明显这个数组指针不能存储整个二维数组,只能存储一部分。

④.打印出来地址的差值对应的地址,以及对应的差值数值。

图解:

  

运行结果:

6.题目如图:

逐条语句分析:

①.定义一个二维数组并进行初始化

②.定义一个指针变量ptr1存放的是变量的地址,我们看到这里的数组名是被&的,我们知道&数组名是表示的整个数组,所以&aa+1跳过的是整个数组,因为这里指向的是整个数组对应的类型就是int (*)[5],所以我们需要进行一步强制类型转换,把它转换为(int*)类型存储到指针类型变量ptr2中

③.这里的aa没有&符号,也没有在sizeof内部,所以这里的aa是首元素地址,因为是一个二维数组,所以首元素地址是第一行的地址,+1后跳到了第二行

④.打印出来*(ptr1-1)和*(ptr2-1)的数值

图解:

运行结果:


7.题目如图:

逐条语句分析:

①.定义一个字符指针数组,并进行了初始化

②.定义一个二级指针存放的是字符指针数组元素的首地址

③.二级指针++跳个一个元素的地址,指向的是下一个元素的地址

④.打印出来*pa对应的元素

图解:

 运行结果:

 8.题目如图:

 逐条语句分析:

①.定义一个字符指针数组,并初始化

②.定义一个字符指针数组(二级指针),并初始化

③.定义一个三级指针指向cp字符指针数组

④~⑦按要求去打印数值

图解:

运行结果:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: C语言指针笔试题全面解析

本文链接: https://www.lsjlt.com/news/135215.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言指针笔试题全面解析
    目录前言一、指针笔试题 1.题目如图:2.题目如图: 3.题目如图:4.题目如图:   5.题目如图:6.题目如图:7.题目如图:&...
    99+
    2024-04-02
  • C语言常见的指针笔试题解析
    目录笔试题1笔试题2笔试题3笔试题4笔试题5笔试题6笔试题7笔试题8在我们学习指针之后,应该在实际应用中去理解和掌握它,毕竟实践才是检验真理的唯一标准,我们以后在找工作的过程中免不了...
    99+
    2022-11-13
    C语言指针笔试题解析 C语言指针笔试题 C语言指针
  • C语言经典指针笔试题详解
    目录题目一(有关传值调用与非法访问)题目二 (返回栈空间地址的问题 )题目三 (区别传值调用的传址调用)题目四 (free释放的时机)🎇结尾:题目一(有关传值调用与非...
    99+
    2024-04-02
  • 【C进阶】指针和数组笔试题解析
    做题之前我们先来回顾一下 对于数组名的理解:除了以下两种情况,数组名表示的都是数组首元素的地址 (1)sizeof(数组名):这里的数组名表示整个数组 (2)&(数组名) :这里的数组名也表示整个数组 一、一维数组 int a[]...
    99+
    2023-09-26
    c语言 算法 开发语言
  • C语言中指针和数组试题详解分析
    目录数组题:程序一(一维数组):字符数组程序二(字符数组):程序三(字符数组):程序四(字符数组):程序五(字符数组):二维数组程序六( 二维数组):指针题程序七( 指针):程序八(...
    99+
    2024-04-02
  • C语言利用面试真题理解指针的使用
    目录前言笔试题一笔试题二笔试题三笔试题四笔试题五笔试题六笔试题七笔试题八前言 大家好~我又来了,今天给大家带来的是指针的几道笔试题,希望能够加强大家对指针知识的把握,指针就应该这样学...
    99+
    2022-11-13
    C语言 指针 C语言 面试 指针
  • C语言八道笔试题精讲带你掌握指针
    目录题目一题目二题目三题目四题目五题目六题目七题目八为了题目的准确性和我们一般学习过程中的习惯,这里所有的题目代码都是在 X86 环境(32 位平台)下运行的。 题目一 #inclu...
    99+
    2024-04-02
  • C语言sizeof和strlen的指针和数组面试题详解
    目录一、概念         sizeof:strlen:二、例题及解析2.1 一维数组2.2 字符数...
    99+
    2024-04-02
  • C语言中二级指针解析(指向指针的指针)
    目录二级指针(指向指针的指针)二级指针的定义与理解二级指针定义格式二级指针赋值实例二级指针(指向指针的指针) 指针可以指向一份普通类型的数据,例如 int、double、char 等...
    99+
    2024-04-02
  • C语言 指针综合解析
    目录指针总结1.指针的本质1.1 指针的定义1.2 取地址操作符与取值操作符2.指针的使用场景2.1 指针的传递2.2 指针的偏移(指针的加减)2.3 指针与自增、自减运算符2.4 ...
    99+
    2024-04-02
  • C语言指针必备基础全面覆盖
    目录前言一、指针是什么?1.数据在内存中的存储2.一个小的单元到底是多大?二、指针变量1.什么是指针变量2.指针类型3.指针类型的作用三、野指针1.什么是野指针2.野指针成因2.1....
    99+
    2024-04-02
  • C语言指针详解之野指针
    目录指针是什么?怎么表示?什么是指针变量?指针类型又是什么?指针类型存在的意义野指针是什么?野指针产生的原因一、 指针未初始化二、 指针越界访问如何避免野指针(野狗)的出现呢?指针运...
    99+
    2024-04-02
  • C语言指针详解
    目录前言:复杂类型说明一、细说指针1.指针的类型2.指针所指向的类型3.指针的值----或者叫指针所指向的内存区或地址4 指针本身所占据的内存区二、指针的算术运算三、运算符&...
    99+
    2024-04-02
  • Visual Studio C++指针靠前靠后的问题全面解析
    本文地址:https://www.cnblogs.com/oberon-zjt0806/p/14631149.html 甜咸之争 经常写C++的基本上避不开使用指针,而且C++中指针...
    99+
    2024-04-02
  • C语言简析指针用途
    目录对象的访问方式什么是指针指针变量与指针相关的运算符指针变量作为函数参数数组与指针多维数组与指针指针常量 和 常量指针指针数组 与 数组指针字符串与指针函数指针二级指针 与 多级指...
    99+
    2024-04-02
  • C语言例题讲解指针与数组
    目录1.概要复习2.指针与数组笔试题2.1一维数组2.2字符数组2.3字符串数组2.4字符串指针2.5二维数组1.概要复习 本篇的内容主要围绕指针与数组、指针与字符串等之间的关系,以...
    99+
    2024-04-02
  • C语言的指针类型详细解析
    指针存储了内存的地址,同时指针是有类型的,如int*,float*,那么,一个自然的猜想就是指针变量应该存储这两方面的信息:地址和指针类型,比如,就像下面的结构体:复制代码 代码如下...
    99+
    2022-11-15
    C语言 指针类型
  • C语言结构体指针案例解析
    写结构体指针前,先说一下 . 号和 -> 的区别 记得当初刚学C语言的时候,搞不清结构体的 . 号和 -> ,经常混淆二...
    99+
    2024-04-02
  • C语言全方位讲解指针的使用
    目录一、指针的概念1.1、变量和地址1.2、指针变量和指针的类型二、指针变量2.1、指针变量的定义及使用2.2、指针运算三、野指针3.1、概念:3.2、野指针的成因3.3、如何规避野...
    99+
    2024-04-02
  • C语言浅析指针的使用
    目录指针等价形式转换函数指针主函数指针 指针是一个变量 (1) 作用:只能存储地址的值 (2) 大小:32位操作系统中占4字节;64位操作系统中占8字节 (3) 取地址:& ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作