C語言指針基礎題(一)

目錄

  • 例題一
    • 題目解析
    • 答案
  • 例題二
    • 題目解析
    • 答案
  • 例題三
    • 題目解析
    • 答案
  • 例題四
    • 題目解析
    • 答案
  • 例題五
    • 題目解析
    • 答案
  • 例題六
    • 題目解析
    • 答案
  • 例題七
    • 題目解析
    • 答案

感謝各位大佬對我的支持,如果我的文章對你有用,歡迎點擊以下鏈接
🐒🐒🐒 個人主頁
🥸🥸🥸 C語言
🐿?🐿?🐿? C語言例題
🐣🐓🏀 python

例題一

以下系統中,int類型占幾個字節,指針占幾個字節,操作系統可以使用的最大內存空間是多大:( )
A.32位下:4,4,2^32 64位下:8,8,2^64
B.32位下:4,4,不限制 64位下:4,8,不限制
C.32位下:4,4,2^32 64位下:4,8,2^64
D.32位下:4,4,2^32 64位下:4,4,2^64

題目解析

32位系統下:
int占4個字節,指針表示地址空間個數,總共有2^32個,故占4個字節

64位系統下:
int占4個字節,指針表示地址空間個數,總共有2^64個,故占8個字節

注意指針是表示的是地址空間,而地址會因為系統不同而不同,比如32位的系統,一個地址就需要32個比特位來表示,而指針如果想要表示這個地址的話,同樣也需要32個比特位才可以,所以在32為的系統條件下,指針占32個比特位也就是4個字節

答案

答案:C

例題二

下面代碼的結果是:( )

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

A.1 2 3 4 5
B.0 0 3 4 5
C.0 0 0 0 5
D.1 0 0 0 0

題目解析

注意數組arr一開始是整形類型的數組,而之后用short * p = (short*)arr將arr強制轉換為short*,并且用short類型的指針p來接收

后面在通過*(p+1)來對數組的元素重新賦值,最后再打印

我們知道short類型的元素占2個字節,也就是16個比特位,而int類型的元素占4個字節,也就是32個比特位
因此下面是arr各元素的內存

01 00 00 00表示arr[0].02 00 00 00表示arr[1]…,

在這里插入圖片描述
當我們for循環修改arr里面的元素時,過程如下
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

答案

答案 B

例題三

關于二級指針描述描述正確的是:( )
A.二級指針也是指針,只不過比一級指針更大
B.二級指針也是指針,是用來保存一級指針的地址
C.二級指針是用來存放數組的地址
D.二級指針的大小是4個字節

題目解析

A:二級指針是指針,不能說起比一級指針大,只能說二級指針指向的空間中存儲的也是一個地址

C:數組的地址一般用一級指針存儲,或者用數組指針接收

D:二級指針是指針,但是否占4個字節不一定,要看具體的系統,如果是32為的系統就是4個字節,但如果是64為的系統則是8個字節

答案

答案 B

例題四

下面關于指針運算說法正確的是:( )
A.整形指針(int*類型)+1,向后偏移一個字節
B.指針-指針得到是指針和指針之間的字節個數
C.整形指針解引用操作訪問4個字節
D.指針不能比較大小

題目解析

A:整形指針+1,向后便宜一個整形類型的大小,即4個字節

B:兩個指針相減,指針必須指向一段連續空間,減完之后的結構代表兩個指針之間相差元素的個數

C:整形指向的是一個整形的空間,解引用操作訪問4個字節

D:指針中存儲的是地址,地址可以看成一個數據,因此是可以比較大小的

答案

答案 C

例題五

下面哪個是指針數組:( )
A. int* arr[10];
B.int * arr[];
C.int **arr;
D.int (*arr)[10];

題目解析

關于指針數組等相類似的如果有不懂的可以看我之前的一些文章
C語言深入理解指針(非常詳細)(三)
C語言深入理解指針(非常詳細)(四)
指針數組是一個數組,該數組的每個元素是一個指針

A:定義了一個數組,該數組中有10個元素,每個元素都是int*的指針類型

B:編譯失敗,定義數組時,要給出空間的大小,如果沒有給時,必須要給出初始化結果

C:定義了一個二級指針(不用因為一個arr就認為是數組,數組在定義的時候需要 [ ] )

D:*和arr先結合,說明arr不是數組。實際上arr是一個指針,一個指向數組的指針(也就是數組指針)

答案

答案 A

例題六

下列程序段的輸出結果為( )

unsigned long pulArray[] = {6,7,8,9,10};
unsigned long *pulPtr;
pulPtr = pulArray;
*(pulPtr + 3) += 3;
printf("%d,%d\n",*pulPtr, *(pulPtr + 3));

A.9,12
B.6,9
C.6,12
D.6,10

題目解析

unsigned long pulArray[] = {6,7,8,9,10};
unsigned long *pulPtr;

pulPtr = pulArray; // 數組名代表數組首元素地址,因此pulptr指向的是數組中第一個元素的位置

*(pulPtr + 3) += 3; // pulptr+3訪問的是數組中第三個元素(數組下標從0開始)

(即 * (pulPtr + 3)=pulPtr[3], * (pulPtr + 3)+3=pulPtr[3]+3),因為一開始puPtr[3]=pulArray[3]=9,所以最后結果就是將9改為9+3=12

printf(“%d,%d\n”,*pulPtr, *(pulPtr + 3)); // 打印第一個和第三個元素,因此:打印6和12

答案

答案 C

例題七

關于指針的概念,錯誤的是:( )
A.指針變量是用來存放地址的變量
B.指針變量中存的有效地址可以唯一指向內存中的一塊區域
C.野指針也可以正常使用
D.局部指針變量不初始化就是野指針

題目解析

A:指針變量中存儲的是一個地址,指向同類型的一塊內存空間

B:地址是唯一的,一個指針變量中只能存儲一個地址,因此可以唯一指向內存中的一塊區域

C:野指針指向的空間時非法的,或者說該指針指向的空間已經不存在了,因此野指針不能使用

D:局部指針變量沒有初始化時里面就是隨機值,因此指向那個位置不一定,故將其看成是野指針

答案

答案 C

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211915.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211915.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211915.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 教程 - 01 基礎篇

文章目錄 C介紹環境配置第一個cpp程序案例練習 變量常量關系運算符邏輯運算符條件運算符位運算符類型轉換分支循環程序調用綜合案例 C介紹 基于C語言&#xff0c;繼承了C的所有語法&#xff1b; 靜態類型語言&#xff0c;需要先編譯&#xff0c;再執行&#xff1b; 貼近底層硬…

雪花算法:分布式系統的關鍵藝術

導言 在探索分布式系統的奧秘時&#xff0c;我們經常遇到一個看似簡單卻極其關鍵的挑戰&#xff1a;如何高效、可靠地生成唯一的標識符&#xff08;ID&#xff09;。這不僅是技術的問題&#xff0c;更是一種藝術。讓我們深入探討雪花算法&#xff08;Snowflake Algorithm&…

windows下分卷解壓文件

我的文件是這樣的&#xff1a; 存放路徑為&#xff1a;C:\Users\Luli_study\MICCAI_MMAC\fudanuniversity\DDR dataset 首先要進入分卷文件的目錄cd&#xff1a; 第一步&#xff1a;cd /path/o/分卷問文件目錄 第二步&#xff1a; 執行之后的結果(紅色框出來的)&#xff1a; …

?functools --- 高階函數和可調用對象上的操作?

源代碼: Lib/functools.py functools 模塊應用于高階函數&#xff0c;即參數或&#xff08;和&#xff09;返回值為其他函數的函數。 通常來說&#xff0c;此模塊的功能適用于所有可調用對象。 functools 模塊定義了以下函數: functools.cache(user_function) 簡單輕量級未綁…

Vellum —— Fluid

目錄 Vellum fluids setups Fluid tips and troubleshooting Fluid phases Vellum fluids and soft bodies Vellum fluid vs FLIP fluid Vellum fluids setups Vellum fluid solver是基于粒子流體的解算框架&#xff0c;被完全集成到了Vellum動力學系統&#xff08;可與gr…

王道數據結構課后代碼題 p149 第3—— 7(c語言代碼實現)

目錄 3.編寫后序遍歷二叉樹的非遞歸算法 4.試給出二叉樹的自下而上、自右到左的層次遍歷算法 &#xff08;有圖解代碼詳解&#xff09;c語言代碼實現 5.假設二叉樹采用二叉鏈表存儲結構&#xff0c;設計一個非遞歸算法求二叉樹的高度。 ?編輯 6.設一棵二叉樹中各結點的值互不…

普冉(PUYA)單片機開發筆記(7): ADC-輪詢式多路采樣

概述 應用中經常會有使用單片機進行模數轉換的需求。PY32F003 具有 1 個 12 位的模擬數字轉換器&#xff08;ADC&#xff09;&#xff0c;今天我們一起來使用一下這個 ADC。 數據手冊中對 ADC 簡介如下。 SAR ADC&#xff1a;逐次逼近式 ADC&#xff0c;原理參見“參考鏈接&a…

1830_emacs lisp的交互式模式

org-mode的標記語法 Grey 全部學習匯總&#xff1a; GitHub - GreyZhang/g_org: my learning trip for org-mode 交互式模式 emacs的交互式模式讓我對emacs的生命力有了更進一步的認識&#xff0c;但是我并沒有找到什么特別豐富的資料做這方面的學習與分析。尤其是理論與實…

class070 子數組最大累加和問題與擴展-上【算法】

class070 子數組最大累加和問題與擴展-上【算法】 code1 53. 最大子數組和 // 累加和最大子數組和 // 給你一個整數數組 nums // 請你找出一個具有最大累加和的非空子數組 // 返回其最大累加和 // 測試鏈接 : https://leetcode.cn/problems/maximum-subarray/ dp[i]&#xff…

【Docker】Docker Compose,yml 配置指令參考的詳細講解

作者簡介&#xff1a; 辭七七&#xff0c;目前大二&#xff0c;正在學習C/C&#xff0c;Java&#xff0c;Python等 作者主頁&#xff1a; 七七的個人主頁 文章收錄專欄&#xff1a; 七七的閑談 歡迎大家點贊 &#x1f44d; 收藏 ? 加關注哦&#xff01;&#x1f496;&#x1f…

基于c++版數據結構基于數組棧改-Python思維總結

##棧部分-&#xff08;疊貓貓&#xff09; ##抽象數據類型棧的定義&#xff1a;是一種遵循先入后出的邏輯的線性數據結構。 換種方式去理解這種數據結構如果我們在一摞盤子中取到下面的盤子&#xff0c;我們首先要把最上面的盤子依次拿走&#xff0c;才可以繼續拿下面的盤子&…

【Java期末復習資料】(2)常見例題 //持續更新

本文章主要是常見例題&#xff0c;解析不會太詳細&#xff0c;有問題、不會的可以給我發消息哦&#xff0c;后續會出模擬卷 常見例題&#xff1a; 1.下列跟Java技術平臺有關的是&#xff08;ABD&#xff09; A.JVM B.JDK C.JPN D.JRE 2.面向對象的特征包括&#xff08;ACD&…

wxPython的控件tree

wxPython樹控件介紹 樹&#xff08;tree&#xff09;是一種通過層次結構展示信息的控件&#xff0c;如下圖所示是樹控件示例&#xff0c;左窗口中是樹控件&#xff0c;在wxPython中樹控件類是wx.TreeCtrl。 wx.TreeCtrl常用的方法有 AddRoot(text, image-1, selImage-1, data…

在Deepin中安裝x11vnc工具并結合內網穿透軟件實現遠程訪問桌面

文章目錄 1. 安裝x11vnc2. 本地遠程連接測試3. Deepin安裝Cpolar4. 配置公網遠程地址5. 公網遠程連接Deepin桌面6. 固定連接公網地址7. 固定公網地址連接測試 x11vnc是一種在Linux系統中實現遠程桌面控制的工具&#xff0c;它的原理是通過X Window系統的協議來實現遠程桌面的展…

P4 Qt如何添加qss樣式表文件和添加圖片資源

目錄 前言 01 添加圖片資源文件 02 添加qss文件 前言 &#x1f3ac; 個人主頁&#xff1a;ChenPi &#x1f43b;推薦專欄1: 《C_ChenPi的博客-CSDN博客》??? &#x1f525; 推薦專欄2: 《Qt基礎_ChenPi的博客-CSDN博客》??? &#x1f33a;本篇簡介 &#xff1a;這一章…

JVM Optimization Learning(六)

目錄 一、JVM Optimization 1、Shenandoah Shenandoah的使用方法 2、ZGC ZGC的版本更迭 ZGC的使用方法 ZGC的參數設置 3、JMH測試GC性能 一、JVM Optimization 1、Shenandoah Shenandoah是由Red Hat開發的一款低延遲的垃圾收集器&#xff0c;Shenandoah并發執行大部分…

機器人純阻抗控制接觸剛性環境(阻尼影響因素)

問題描述 在機器人學中&#xff0c;阻抗控制是一種常用的控制策略&#xff0c;用于管理機器人在與環境交互時的運動和力。阻抗控制背后的關鍵概念是將環境視為導納&#xff0c;而將機器人視為阻抗。 純阻抗控制接觸剛性環境時&#xff0c;機器人的行為方式主要受其阻抗參數的…

數據結構和算法專題---6、定時算法與應用

本章我們會對定時算法做個簡單介紹&#xff0c;包括常用的定時算法&#xff08;最小堆、時間輪&#xff09;的概述、實現方式、典型場景做個說明。 概述 系統或者項目中難免會遇到各種需要自動去執行的任務&#xff0c;實現這些任務的手段也多種多樣&#xff0c;如操作系統的…

【C++】使用“/**/“進行注釋的好處

2023年12月10日&#xff0c;周日晚上 我今天下午看Google Chrome的源碼時&#xff0c;才發現"/**/"原來還能這么用 使用"/**/"的好處就是&#xff0c;可以在任何地方進行注釋&#xff0c;哪怕是參數列表 void CircularWindow::enterEvent(QEvent *event/…

【Python】判斷域名是否合法

python判斷域名是否合法|校驗域名 域名以點號分隔成多個字符串。單個字符串由各國文字的特定字符集、字母、數字、連字符&#xff08;-&#xff09;組成&#xff0c;字母不區分大小寫&#xff0c;連字符&#xff08;-&#xff09;不得出現在字符串的頭部或者尾部。單個字符串長…