千家信息网

C语言中指针有哪些笔试题

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下C语言中指针有哪些笔试题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、指针笔试题1.题目如图:逐条语
千家信息网最后更新 2026年11月02日C语言中指针有哪些笔试题

小编给大家分享一下C语言中指针有哪些笔试题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、指针笔试题

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字符指针数组

④~⑦按要求去打印数值

图解:

运行结果:

以上是"C语言中指针有哪些笔试题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

地址 数组 指针 类型 变量 就是 元素 数值 结果 语句 逐条 题目 如图 分析 运行 二维 存储 强制 大小 字符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 互联网科技公司排名 深圳九邦互联网科技有限公司 互联网和科技技术 腾讯阿里互联网科技 互联网科技革命 友谊互联网络科技 互联网金融和金融科技 互联网科技素材视频竖屏 温州喔噻互联网科技有限公司 剑昆互联网络科技有限公司临桂 互联网金融科技名词解释 众安科技工业互联网合作 元气玛特互联网科技公司是外包吗 黑科技 体验场景 互联网大会 互联网企业科技类企业如何做账 江苏苏星互联网科技有限公司 昆明中奇联合互联网科技 互联网界的黑科技 上海互联网科技园景观 期待互联网科技 互联网与未来科技 上海万想互联网科技 江苏南京365互联网科技 福州新华互联网科技学校 知乎 互联网科技公司有风险吗 互联网媒体平台算高科技产业 滨湖区互联网智能科技产品有哪些 合肥互联网科技公司公章图片 上海互联网科技园景观
0