关于C语言指针的笔试题

发布时间:2023-08-28 15:30

今天下了超级大的雪,被困在寝室出不去了,来更新三道关于指针的笔试题

1,2比较简单

3比较难

来看第一题,涉及到二维数组

关于C语言指针的笔试题_第1张图片

 关于C语言指针的笔试题_第2张图片

其实可以通过画个图很容易就找到ptr1,ptr2所指向的位置,答案就很明了了。

第二题,这里主要要注意数组a里面的内容是啥,以及%s和%p再printf函数中打印内容的区别,

关于C语言指针的笔试题_第3张图片

 这个题也比较简单,首先 char*a[]是一个内含char*类型地址的指针数组,在初始化时初始化了3个字符串,但这个指针数组内存放的就是三个字符串的地址,再用二级指针**pa指向了指针数组a,pa++就指向了at的地址,打印%s就会打印地址指向的内容,如果是%p,那么就是at的地址。

第三题,这个题比较难,需要反复看看

关于C语言指针的笔试题_第4张图片

首先来看第一个printf,这个比较简单,首先++让cpp指向了c+2,再解引用两次就会得到POIN

关于C语言指针的笔试题_第5张图片第二个printf,因为++优先级比较高,所以cpp再向下跳,再解引用,找到c+1的空间,然后再--,相当于c+1-1,导致该空间指向了c+0,也就是上面这个监视图所指向的地址。也就是改变了指向的空间,再解引用找到了指向ENTER的空间,也就是ENTER的首地址,再进行加3,跳过E,N,T,找到ER。

第三个printf,首先来说明*cpp[-2]的含义,**(cpp-2)+3,首先cpp-2指向了c+3的位置,解引用之后拿到了该空间的内容c+3,再解引用找到了FIRST的地址,再加3,打印出ST。

第四个printf和第三个类似,cpp[-1][-1]+1的含义是*(*(cpp-1)-1)+1,规律同上,推出EW。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号