欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言指針筆試題全面解析

 更新時(shí)間:2021年09月09日 14:54:12   作者:夢の瀾  
這篇文章主要介紹了C語言指針筆試題全面解析,介紹了其相關(guān)概念,然后分享了幾種用法,具有一定參考價(jià)值。需要的朋友可以了解下。

前言

通過8道指針筆試題的解析,可以充分的復(fù)習(xí)到指針的相關(guān)知識,并且題目中會結(jié)合許多之前的相關(guān)知識,希望通過本篇文章,對大家所學(xué)的知識進(jìn)行一個(gè)復(fù)習(xí)。

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、指針筆試題 

1.題目如圖:

 

逐條語句分析:

①.定義了一個(gè)大小為5的整型數(shù)組,并進(jìn)行了初始化

②.定義了一個(gè)整型指針變量ptr用來存放地址,這里的存放地址是(&a+1)的地址,由于是&a,所以表示的是整個(gè)數(shù)組a,所以&a+1跳過的是整個(gè)數(shù)組,這里的地址是a數(shù)組后面的一塊隨機(jī)變量地址。因?yàn)橹羔樦赶虻氖钦麄€(gè)數(shù)組,所以它的類型是int(*)[5](數(shù)組指針),所以我們在它的前面進(jìn)行強(qiáng)制類型轉(zhuǎn)換,把它轉(zhuǎn)換為(int*)類型,然后再存放到指針變量ptr內(nèi)部。

③.打印出來對應(yīng)的*(a+1)和*(ptr-1)的數(shù)值

圖解:

 

 運(yùn)行結(jié)果:

  

2.題目如圖:

 

逐條語句分析:

①.定義一個(gè)結(jié)構(gòu)體變量,供我們一會使用

②.p是一個(gè)地址,沒有對它進(jìn)行任何的改變,所以就是用16進(jìn)制去進(jìn)行加減操作即可,0x1就是十六進(jìn)制的1,所以可以理解為p+1,打印出來對應(yīng)的十六進(jìn)制的地址,因?yàn)榻Y(jié)構(gòu)體的大小為20個(gè)字節(jié),所以+1就是跳過整個(gè)結(jié)構(gòu)體,就是加上整個(gè)結(jié)構(gòu)體的大小,即對應(yīng)的p的地址+20得到新的地址打印出來,這里加上的20是十進(jìn)制我們需要把它轉(zhuǎn)換為十六進(jìn)制的數(shù),即對應(yīng)p的地址加上0x00000014即可

③.p在這里進(jìn)行了一步無符號長整型的強(qiáng)制類型轉(zhuǎn)換,然后再加上0x1(即十進(jìn)制的1),我們想既然我們把p類型轉(zhuǎn)換為了一個(gè)整型,所以+1就是單純的+1,我們舉一個(gè)簡單的例子,10和1都是整型數(shù)據(jù),10在內(nèi)存的存儲是0x0000000A,1在內(nèi)存的存儲是0x00000001,10+1 = 11 ,11對應(yīng)的內(nèi)存存儲是0x0000000B,所以我們知道了兩個(gè)整型相加,對應(yīng)的地址就是+1

④.p在這里進(jìn)行了一步無符號整型指針的強(qiáng)制類型轉(zhuǎn)換,然后再加上0x1(即十進(jìn)制的1),我們想既然我們把p類型轉(zhuǎn)換為一個(gè)整型指針,所以加+1,跳過的是一個(gè)整型指針變量,一個(gè)整型指針變量的大小為4,所以+1對應(yīng)的地址就是+4

 運(yùn)行結(jié)果:

 3.題目如圖:

 

逐條語句分析:

①.定義一個(gè)大小為4的整型數(shù)組,并且進(jìn)行了初始化

②.定義一個(gè)整型指針變量ptr1存放的是變量的地址,這個(gè)地址與第一題的方法一致在這里不再重復(fù),向上看第一題即可

③.這里的a單獨(dú)放在括號內(nèi),代表的是數(shù)組的首元素地址,類型是(int*),在a的前面有一步強(qiáng)制類型轉(zhuǎn)換把int*類型轉(zhuǎn)換為了整型(int類型)加+1后,我們由上一題可以知道整型的數(shù)值+1地址也是+1個(gè)字節(jié),然后再一步強(qiáng)制類型轉(zhuǎn)換把它轉(zhuǎn)換為int*的類型,把地址存儲到指針變量ptr2中

④.注意這里的是%x是以十六進(jìn)制的方法打印出來ptr[-1]和*ptr2

圖解:

運(yùn)行結(jié)果:

4.題目如圖:  

 

 逐條語句分析:

①.定義了一個(gè)3行2列的二維數(shù)組,并且進(jìn)行了初始化,我們看到這里面的元素,都是用圓括號括起來的,所以這里的是逗號表達(dá)式,我們知道逗號表達(dá)式的數(shù)值是取最后一個(gè)元素,所以就相當(dāng)于我們的數(shù)組元素只有{1,3,5}其他的的位置沒有初始化數(shù)值就都是0,所以就相當(dāng)于我們的數(shù)組就是這樣的int a[3][2] = {1,3,5,0,0,0}

②.定義一個(gè)指針變量p

③.指針變量p用來存放a[0]的地址,我們注意到這里的a[0],既沒有&a[0]也沒有sizeof(a[0]),所以這里的a[0]就是數(shù)組的首元素地址就是a[0][0]的地址,即就是數(shù)字1的地址,所以指針變量p存放的就是a[0][0]元素的地址

④.打印出來p[0]對應(yīng)的元素?cái)?shù)值,我們知道p[0] = *(p+0)所以就是對應(yīng)a[0][0]的數(shù)值

圖解:

運(yùn)行結(jié)果:

 5.題目如圖:

逐條語句分析:

①.定義一個(gè)二維數(shù)組。

②.定義一個(gè)數(shù)組指針。

③.將二維數(shù)組首地址賦值給數(shù)組指針,我們看到這里的類型是int(*)[4],而二維數(shù)組明顯是有5列的所以明顯這個(gè)數(shù)組指針不能存儲整個(gè)二維數(shù)組,只能存儲一部分。

④.打印出來地址的差值對應(yīng)的地址,以及對應(yīng)的差值數(shù)值。

圖解:

  

運(yùn)行結(jié)果:

6.題目如圖:

逐條語句分析:

①.定義一個(gè)二維數(shù)組并進(jìn)行初始化

②.定義一個(gè)指針變量ptr1存放的是變量的地址,我們看到這里的數(shù)組名是被&的,我們知道&數(shù)組名是表示的整個(gè)數(shù)組,所以&aa+1跳過的是整個(gè)數(shù)組,因?yàn)檫@里指向的是整個(gè)數(shù)組對應(yīng)的類型就是int (*)[5],所以我們需要進(jìn)行一步強(qiáng)制類型轉(zhuǎn)換,把它轉(zhuǎn)換為(int*)類型存儲到指針類型變量ptr2中

③.這里的aa沒有&符號,也沒有在sizeof內(nèi)部,所以這里的aa是首元素地址,因?yàn)槭且粋€(gè)二維數(shù)組,所以首元素地址是第一行的地址,+1后跳到了第二行

④.打印出來*(ptr1-1)和*(ptr2-1)的數(shù)值

圖解:

運(yùn)行結(jié)果:


7.題目如圖:

逐條語句分析:

①.定義一個(gè)字符指針數(shù)組,并進(jìn)行了初始化

②.定義一個(gè)二級指針存放的是字符指針數(shù)組元素的首地址

③.二級指針++跳個(gè)一個(gè)元素的地址,指向的是下一個(gè)元素的地址

④.打印出來*pa對應(yīng)的元素

圖解:

 運(yùn)行結(jié)果:

 8.題目如圖:

 逐條語句分析:

①.定義一個(gè)字符指針數(shù)組,并初始化

②.定義一個(gè)字符指針數(shù)組(二級指針),并初始化

③.定義一個(gè)三級指針指向cp字符指針數(shù)組

④~⑦按要求去打印數(shù)值

圖解:

運(yùn)行結(jié)果:

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 詳解C++中的vector容器及用迭代器訪問vector的方法

    詳解C++中的vector容器及用迭代器訪問vector的方法

    使用迭代器iterator可以更方便地解引用和訪問成員,當(dāng)然也包括vector中的元素,本文就來詳解C++中的vector容器及用迭代器訪問vector的方法,需要的朋友可以參考下
    2016-05-05
  • C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例

    C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例

    今天小編就為大家分享一篇關(guān)于C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 關(guān)于C語言 文件讀寫 feof 函數(shù)

    關(guān)于C語言 文件讀寫 feof 函數(shù)

    這篇文章主要給大家分享的是關(guān)于C語言文件讀寫 feof 函數(shù) ,feof 是 C 語言標(biāo)準(zhǔn)庫函數(shù),其功能是檢測文件結(jié)束符,如果文件結(jié)束,則返回非 0 值,否則返回 0,感興趣的小伙伴請跟小編一起來看看下面文章的內(nèi)容吧
    2021-10-10
  • C++中內(nèi)存池的簡單原理及實(shí)現(xiàn)詳解

    C++中內(nèi)存池的簡單原理及實(shí)現(xiàn)詳解

    內(nèi)存池的思想是,在真正使用內(nèi)存之前,預(yù)先申請分配一定數(shù)量、大小預(yù)設(shè)的內(nèi)存塊留作備用。本文主要來和大家聊聊內(nèi)存池的簡單原理及實(shí)現(xiàn),希望對大家有所幫助
    2023-03-03
  • C語言strlen,strcpy,strcmp,strcat,strstr字符串操作函數(shù)實(shí)現(xiàn)

    C語言strlen,strcpy,strcmp,strcat,strstr字符串操作函數(shù)實(shí)現(xiàn)

    這篇文章主要介紹了C語言strlen,strcpy,strcmp,strcat,strstr字符串操作函數(shù)實(shí)現(xiàn),,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • C語言中進(jìn)行大小寫字母轉(zhuǎn)化的示例代碼

    C語言中進(jìn)行大小寫字母轉(zhuǎn)化的示例代碼

    C語言標(biāo)準(zhǔn)庫中提供了用于大小寫轉(zhuǎn)換的函數(shù),使得這一操作變得簡單而高效,本文將詳細(xì)介紹如何在C語言中進(jìn)行大小寫字母的轉(zhuǎn)換,包括相關(guān)的函數(shù)和示例代碼,需要的朋友可以參考下
    2024-03-03
  • C語言控制進(jìn)程之進(jìn)程等待詳解

    C語言控制進(jìn)程之進(jìn)程等待詳解

    這篇文章主要介紹了C語言控制進(jìn)程之進(jìn)程等待即回收子進(jìn)程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例

    C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例

    這篇文章主要介紹了C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例,并且轉(zhuǎn)換后會統(tǒng)計(jì)二進(jìn)制1的個(gè)數(shù),實(shí)例簡單明了,需要的朋友可以參考下
    2014-06-06
  • C++ 遞歸遍歷文件并計(jì)算MD5的實(shí)例代碼

    C++ 遞歸遍歷文件并計(jì)算MD5的實(shí)例代碼

    在本篇文章里小編給大家整理的是一篇關(guān)于C++ 遞歸遍歷文件并計(jì)算MD5的實(shí)例代碼,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-07-07
  • c++中的volatile和variant關(guān)鍵字詳解

    c++中的volatile和variant關(guān)鍵字詳解

    大家好,本篇文章主要講的是c++中的volatile和variant關(guān)鍵字詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01

最新評論