Day04_C語言基礎數據結構重點復習筆記20250618

1.什么是計算機的大小端存儲?

答:大端是數據的高位字節存儲在低地址,低位字節存儲在高地址,網絡協議(如TCP/IP)通常采用大端序(稱為“網絡字節序”)。例如:32位整數 0x12345678 在內存中的存儲(地址從左到右遞增):

地址:0x100 ?0x101 ?0x102 ?0x103
數據: 12 ? ? ? 34 ? ? ? ?56 ? ? ? ?78
數據的低位字節存儲在低地址,高位字節存儲在高地址。x86、ARM等常見CPU默認采用小端序。32位整數 同一整數 0x12345678 在小端下的存儲:

地址:0x100 ?0x101 ?0x102 ?0x103
數據: 78 ? ? ? ?56 ? ? ? ?34 ? ? ? ? 12

2.如何判斷大小端存儲?(如何分辨如上圖所示)

int a = 0x12345678;
char *p = &a;
if(*p==0x78){printf("小端存儲\n");}else{printf("大端存儲\n")}char c = (char)a;
if(c==0x78){printf("小端存儲\n");}else{printf("大端存儲\n")}union A
{int n1;short n2;
}a1;
a1.n1 = 0x01345601;
if(a1.n2==0x5601){printf("小端存儲\n");}else{printf("大端存儲\n")}union 
{int a;long int b;char str[13];
};    //16

3.arr和&arr的區別

01.&arr 表示整個數組的地址,它的類型是指向整個數組的指針。盡管 &arr 和 arr 的數值相同,但它們的類型不同,指針運算的步長也不同。

02.&arr 和 arr 的數值相同,都指向數組起始位置。
arr + 1 是指向下一個元素的地址,由于 int 類型通常占 4 字節,所以地址偏移 4 字節。
&arr + 1 是指向下一個同類型數組的地址,偏移量是整個數組的大小,即 5 * 4 = 20 字節。

arr是數組的首地址,需要用一級指針指向

&arr是整個數組的地址,需要用二級指針指向

4.解釋數組指針、指針數組、函數指針和指針函數的區別

01:數組指針
定義:數組指針是指向數組的指針,它指向的是一個數組,其類型是指向特定類型和長度數組的指針。
語法:type (*ptr)[size];,其中 type 是數組元素的類型,size 是數組的長度,ptr 是數組指針變量名。

解釋:ptr 是一個數組指針,指向 arr 數組。使用 (*ptr)[i] 來訪問數組元素,*ptr 先解引用得到數組,再通過 [i] 訪問對應元素。

02.指針數組

定義:指針數組是一個數組,數組中的每個元素都是指針。
語法:type *arr[size];,其中 type 是指針指向的數據類型,size 是數組的長度,arr 是指針數組名。

解釋:ptr_arr 是一個指針數組,數組中的每個元素都是 int 類型的指針,分別指向 a、b、c 變量。通過 *ptr_arr[i] 解引用指針訪問對應變量的值。

03.函數指針

定義:函數指針是指向函數的指針,它存儲的是函數的入口地址,可以通過函數指針調用函數。
語法:return_type (*ptr)(parameter_list);,其中 return_type 是函數的返回類型,parameter_list 是函數的參數列表,ptr 是函數指針變量名。
解釋:func_ptr 是一個函數指針,指向 add 函數。可以像調用普通函數一樣使用 func_ptr(3, 4) 來調用 add 函數。

04.指針函數

定義:指針函數是返回指針的函數,即函數的返回值是一個指針。
語法:type *func_name(parameter_list);,其中 type 是指針指向的數據類型,func_name 是函數名,parameter_list 是函數的參數列表。
解釋:get_array 是一個指針函數,返回一個指向 int 數組的指針。在 main 函數中接收該指針并通過它訪問數組元素。

數組指針:本質是指針,指向一個數組。
指針數組:本質是數組,數組元素為指針。
函數指針:本質是指針,指向一個函數。
指針函數:本質是函數,返回值為指針。

5.char str[]="hello\01"; printf("strlen(str)");的結果

輸入結果為:6

解析:

在字符數組 str 中,字符依次為 'h'、'e'、'l'、'l'、'o'、'\01',接著是字符串結束符 '\0'。由于 \01 并非字符串結束符,strlen 函數會把它當作普通字符計數。所以,str 中有效字符有 6 個,strlen(str) 的結果為 6。

6.猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求原來它一共摘了多少個桃子。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(int n)
{                                                   if(n==10){return 1;}return (fun(n+1)+1)*2;}
int main(int argc, const char *argv[])
{printf("猴子原來一共摘了%d個桃子\n",fun(1));return 0;
}

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

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

相關文章

基于OpenSSL實現AES-CBC 128算法的 SeedKey DLL的生成與使用

&#x1f345; 我是螞蟻小兵&#xff0c;專注于車載診斷領域&#xff0c;尤其擅長于對CANoe工具的使用&#x1f345; 尋找組織 &#xff0c;答疑解惑&#xff0c;摸魚聊天&#xff0c;博客源碼&#xff0c;點擊加入&#x1f449;【相親相愛一家人】&#x1f345; 玩轉CANoe&…

進程間通信、線程間通信

進程間通信、線程間通信 進程間通行&#xff08;Inter-Process Communication&#xff0c; IPC&#xff09;和線程間通信&#xff08;Thread Communication&#xff09;的方式不完全相同&#xff0c;因為進程和線程的運行環境和特性不同 進程和線程的本質區別 進程 進程是操…

【FPGA學習】FPGA入門學習即數字邏輯復習

前言&#xff1a;最近開始學習FPGA了&#xff0c;希望通過博客記錄下每一次學習的過程&#xff0c;與大家共勉。 目錄 一、組合邏輯電路的設計&#xff08;工程學習引入&#xff09; 二、3-8譯碼器設計、下載和功能演示&#xff08;在的8段數碼管顯示&#xff09; 2.1 Logs…

ffmpeg python rgba圖片合成 4444格式mov視頻,保留透明通道

def convert_pngs_to_mov(input_pattern, output_path, frame_rate30):"""將BGRA四通道PNG序列轉換為ProRes 4444編碼的MOV視頻&#xff08;保留透明通道&#xff09;參數:input_pattern: PNG序列路徑模式&#xff08;如&#xff1a;"/path/to/frames/fram…

Java 實現 PDF 轉圖片功能:實戰教程 + 場景解析

作者:云起川南|專注 Java 實戰與自動化集成 在 PDF 文檔處理的各類業務場景中,“將 PDF 頁面轉為圖片”是一個高頻、剛需的功能,廣泛應用于 預覽展示、文件歸檔、圖片加密水印、OCR 文本識別 等系統中。 本文將帶你一步一步實戰如何使用 Java 實現 PDF 轉圖片 功能,使用開…

面試題-有個對象key全部是string,值全部是number要定義他,不使用interface和type如何定義

在 TypeScript 里&#xff0c;若要定義一個鍵為string類型、值為number類型的對象&#xff0c;并且不使用interface和type&#xff0c;可以采用以下幾種方式&#xff1a; 1. 內聯類型注解&#xff08;Inline Type Annotation&#xff09; 直接在變量聲明時使用索引簽名進行類…

領域驅動設計(DDD)【3】之事件風暴

文章目錄 說明一 事件風暴理論知識1.1 事件風暴的核心目標1.2事件風暴的關鍵步驟1.2.1 準備工作1.2.2 核心流程1.2.3 事件風暴的輸出 1.3 事件風暴的優勢1.4 常見問題Q1&#xff1a;事件風暴適合所有項目嗎&#xff1f;Q2&#xff1a;事件風暴后如何落地&#xff1f;Q3&#xf…

Vue3中監聽 Ref 類型的數字數組

在 Vue 3 中&#xff0c;監聽一個 Ref 類型的數字數組&#xff08;如 ref<number[]>([])&#xff09;時&#xff0c;根據需求的不同&#xff0c;有幾種監聽方式&#xff1a; 1. 監聽整個數組的引用變化 當整個數組被重新賦值時觸發&#xff1a; typescript 復制 下載…

PoolThreadCache 類的結構和源碼實現

PoolThreadCache 在 Netty 的內存池中扮演著線程本地緩存的角色。它的主要目的是減少線程在分配內存時對全局 PoolArena 的競爭&#xff0c;通過緩存一部分最近釋放的內存塊&#xff0c;使得同一線程后續申請相同規格的內存時能夠快速獲取&#xff0c;從而提高分配效率。 下面…

Linux中的阻塞信號與信號原理

在Linux操作系統中&#xff0c;信號&#xff08;Signal&#xff09;是進程間通信和進程控制的核心機制之一。信號是一種異步通知機制&#xff0c;可以向進程發送異步事件通知&#xff0c;以便進程能夠處理系統級別的事件。本文將詳細探討Linux中的信號原理&#xff0c;重點講解…

QT學習教程(三十五)

事件處理&#xff08;- Event Processingn&#xff09; 事件是視窗系統或者Qt 本身在各種不同的情況下產生的。當用戶點擊或者釋放鼠標&#xff0c;鍵盤時&#xff0c;一個鼠標事件或者鍵盤事件就產生了。當窗口第一次顯示時&#xff0c;一個繪制事件會產生告訴新可見的窗口繪…

【Dify 案例】【MCP實戰】【三】【超級美食家】

接上次的超級助理,我們這一期給出一個超級美食家 首先:我的MCP要申請一個key ` 我們來看看這個MCP服務怎么使用呢。`https://modelscope.cn/mcp/servers/@worryzyy/howtocook-mcp插件里面需要配置 {"mcpServers":{"amap-amap-sse":{"url":&qu…

4.文件管理(文本、日志、Excel表)

目錄 1.文本 2.日志 3.Excel表 1.文本 using System.Text;namespace (自己創建的一個類) {/// <summary>/// 配置文件*.ini讀寫器。/// </summary>public class IniFile{[System.Runtime.InteropServices.DllImport("kernel32")]private static ex…

Java 包裝類詳解

什么是包裝類 Java包裝類&#xff08;Wrapper Classes&#xff09;是將8種基本數據類型封裝成對象的類&#xff0c;位于java.lang包中。每個基本數據類型都有對應的包裝類&#xff1a; byte → Byteshort → Shortint → Integerlong → Longfloat → Floatdouble → Doublec…

阿里云ACP認證-數據倉庫

數據倉庫 Kappa架構&#xff1a;將實時和離線代碼統一&#xff08;優化lambda架構&#xff09;&#xff0c;但是不好修正數據&#xff0c;開發周期長&#xff0c;成本浪費&#xff0c;對于歷史數據的高吞吐量力不從心 原一代數據倉庫&#xff1a; 離線&#xff1a;hivemaxcom…

WebRTC(五):TURN協議

TURN&#xff08;Traversal Using Relays around NAT&#xff09;協議是一個網絡協議&#xff0c;旨在解決 NAT&#xff08;網絡地址轉換&#xff09;和防火墻 環境下的 UDP/TCP通信問題。它通常與 STUN 和 ICE 協議一起使用&#xff0c;廣泛應用于 WebRTC、SIP 和視頻會議等實…

Python 的內置函數 hasattr

Python 內建函數列表 > Python 的內置函數 hasattr Python 的內置函數 hasattr() 用于檢查一個對象是否具有指定的屬性或方法。該函數的語法為&#xff1a; hasattr(object, name)參數說明&#xff1a; object&#xff1a;要檢查的對象&#xff0c;可以是任何 Python 對象…

docker使用技巧之把擴展卷命名變成有意義

背景 之前使用別人的鏡像之后&#xff0c;啟動docker后發出現了一堆看不懂名稱的擴展卷 eg&#xff1a;集群查看 擴展卷查看 這個時候如果有很多集群需要清理擴展卷就很麻煩&#xff0c;不知道是哪個集群的 操作步驟 可以實現的分析&#xff1a;這個擴展卷的信息應該是和…

《博物通書》《博物新編》與滿清歷史篡改

《博物新編》作為近代西方科技輸入中國的首部著作&#xff0c;其問世猶如一顆投入平靜湖面的巨石&#xff0c;在 19 世紀中期的中國激起層層漣漪&#xff0c;對中國近代科學發展產生了多維度、深層次的影響。它不僅是知識傳播的載體&#xff0c;更是推動中國科學從傳統走向近代…

【入門】【例18.1】 睡眠

| 時間限制&#xff1a;C/C 1000MS&#xff0c;其他語言 2000MS 內存限制&#xff1a;C/C 64MB&#xff0c;其他語言 128MB 難度&#xff1a;中等 分數&#xff1a;100 OI排行榜得分&#xff1a;12(0.1分數2難度) 出題人&#xff1a;root | 描述 一個人只有每天睡眠時間到達 8…