【C語言】學習過程教訓與經驗雜談:思想準備、知識回顧(四)

?


🔥個人主頁:艾莉絲努力練劍

?專欄傳送門:《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題

🍉學習方向:C/C++方向

??人生格言:為天地立心,為生民立命,為往圣繼絕學,為萬世開太平


??


前言:?我們在學習過程中會碰到很多很多問題,本系列文章不會博主不會額外再創建一個新的專欄來收錄,因為這一系列文章創作的初心主要是針對回顧知識點(遵循遺忘曲線并且根據自身的實際情況可以做出一些計劃,回顧知識點很重要)、緩解學習過程中的可能出現的焦慮等等。主包就不另外開一個專欄了,uu們可以把本系列的文章作為【C語言】專欄的后日談來看。

主包學習能力很一般,學起語言、算法來和大佬們完全無法比。主包起步也比較晚,主包正兒八經開始學C++是從今年的4月24號開始的,主包學習能力真的很一般,C語言這個基礎也不扎實,看主包文章的諸位一定是比主包要強的,但主包學習過程中碰到的麻煩、思考、和做的知識點回顧對大家還是有用的。


目錄

正文?

三、知識點回顧

(七)內存大小與硬盤大小

1、內存

2、磁盤

(1)硬盤

(2)軟盤

3、存取速度對比

4、總結以及重要補充

(八)操作符(運算符)

1、操作符=運算符

2、雙目操作符?

(1)算術運算

(2)比較運算

(3)位運算

(4)賦值運算

(5)演示?

(6) 變量為什么要初始化

?編輯? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

結尾


正文?

三、知識點回顧

(七)內存大小與硬盤大小

內存大小和硬盤大小我們要區分開來,市面上的電腦,256G、512G、1T、2T、4T的都有,大家不要以為這是電腦的內存大小,其實這是電腦自帶的硬盤大小,而購買電腦時我們看到的8G、12G、16G、24G、32G才是電腦的內存大小,平常我們釋放空間(釋放內存)釋放的就是它。

在買電腦時我們通常要考慮的兩個參數,就是內存大小硬盤大小,一般來說內存越大電腦運行速度會越快,硬盤越大能夠存儲的文件就越多。這么看來硬盤和內存好像毫無關聯,其實不然,不管是內存還是磁盤中的硬盤、軟盤,它們本質上來說都是用來存儲數據的。

計算機的存儲器有兩類:一類是內部存儲器,斷電不會保存當前工作;

另一類是外部存儲器,外部存儲器的特點就是不受斷電的影響,即斷了電也能可以保存。

1、內存

內存,又稱內部存儲器。內存的存儲速度要比硬盤快很多,但是內存會受斷電的影響,即斷電里面存儲的所有數據都會丟失。?

2、磁盤
(1)硬盤

????????硬盤(Hard Disk Drive, HDD)是電腦主要的存儲媒介之一,硬盤由一個或多個鋁制或者玻璃制的碟片組成, 這些碟片外覆蓋有鐵磁性材料。

????????硬盤─般都裝在機箱里面,容量較大,能夠存儲的文件比較多。硬盤工作起來就是一個盤玩命轉,一個磁頭懸在盤面上來回讀取寫入;大概相當于陶土在轉盤上,手指來回動。

硬盤有固態硬盤(SSD,新式硬盤/固態硬盤)、機械硬盤(HDD,統硬盤)、混合硬盤(HHD,一塊基于傳統機械硬盤誕生出來的新硬盤)。

????????傳統硬盤(Hard Disk Drive,HDD):即硬盤驅動器。采用磁性碟片來存儲,最基本的電腦存儲器,絕大多數硬盤都是固定硬盤,被永久性地密封固定在硬盤驅動器中,即硬盤和硬盤驅動器整合在一起,裝進一個盒子里,固定在機箱里面不可更換和移動。

我們常說的電腦硬盤C盤、D盤等磁盤分區都屬于硬盤驅動器。目前硬盤一般常見的磁盤容量為80G、128G、160G、256G、320G、500G、750G、1TB、2TB等等。硬盤按體積大小可分為3.5寸、2.5寸、1.8寸等;按轉數可分為5400rpm/7200rpm/10000rpm等;

????????固態硬盤(Solid State Drive,SSD):用固態電子存儲芯片陣列而制成的硬盤,采用閃存顆粒來存儲,由控制單元和存儲單元(FLASH芯片、DRAM芯片)組成。固態硬盤在接口的規范和定義、功能及使用方法上與普通硬盤的完全相同,在產品外形和尺寸上也完全與普通硬盤一致。被廣泛應用于軍事、車載、工控、視頻監控、網絡監控、網絡終端、電力、醫療、航空、導航設備等領域。
優點:讀寫速度快、防震抗摔性、低功耗、無噪音、工作溫度范圍大、輕便;缺點:容量小;壽命有限;售價高。

????????混合硬盤(Hybrid Hard Drive,HHD): 把磁性硬盤和閃存集成到一起的一種硬盤。是既包含傳統硬盤又有閃存(flash memory)模塊的大容量存儲設備。閃存處理存儲中寫入或恢復最頻繁的數據。很多公司開始提供這項技術的變體,他們期望它會在高端系統中受到追捧,尤其是在筆記本電腦和個人數字助理中。
????????相比傳統硬盤,混合硬盤有很多優點,包括:應用中的數據存儲與恢復更快,如文字處理機系統啟動時間減少、功耗降低、生成熱量減少、硬盤壽命延長、筆記本和PAD的電池壽命延長、工作噪聲級別降低;缺點包括:硬盤中數據的尋道時間更長、硬盤的自旋變化更頻繁、閃存模塊處理失敗,不可能進行其中的數據恢復系統的硬件總成本更高。

引用自“軟盤、硬盤、磁盤和內存”的理解一文中的解釋。

(2)軟盤

????????軟盤是個人計算機中最早使用的可移介質。軟盤并不是裝在電腦里面的,而是可移動的,一般用來存儲文件和不同電腦之間進行拷貝文件

????????軟盤的材料是塑料上面涂了一層磁性材料,用于存儲數據, 軟盤的讀寫是通過軟盤驅動器完成的(即軟盤需要軟驅來讀取數據)。軟盤驅動器設計能接收可移動式軟盤,軟驅與現在的HDD結構有些類似,都有磁頭,控制電路和馬達,用于選擇讀取數據的扇區。和HDD、SSD區別實際上是存儲介質的不同以及訪問介質方式的不同,

????????就功能上來說它和現在的U盤是一樣的,只是外形、存儲原理不一樣,它的容量要比硬盤小的多;可以將軟盤看成早期的U盤或者是CD-ROM這種方便移動存儲的東西,在早期用于去移動拷貝一些小的文件是很方便的。軟盤存取速度慢,容量也小,但可裝可卸、攜帶方便。作為一種可移貯存方法,它是用于那些需要被物理移動的小文件的理想選擇;比如最常用的3.5英寸的軟盤容量只有1.44MB。這么小的存儲空間對于目前的我們來說基本上什么也干不了,而且它的存儲速度要比硬盤慢很多。所以只有早期的電腦才會用軟盤,目前已經被淘汰。

3、存取速度對比

即我們向磁盤儲存數據和從磁盤上得到數據的快慢,這個速度越快,我們等待的時間就越少。那硬盤和內存相比,哪個的存取速度會更快一點呢?

硬盤是外部存儲器,速度再快也比不上內存,否則計算機就用不著內存了記住: 硬盤存取速度快于軟盤,而內存取信息的速度又遠遠的快于硬盤。

4、總結以及重要補充

——內存與硬盤的作用及其大小選擇

內存和硬盤是計算機中兩個重要的硬件組件,它們在功能和作用上有明顯的區別。

內存(RAM)是計算機運行程序時臨時存儲數據的地方。它直接與CPU進行數據交換,決定了系統能夠同時處理的數據量。內存容量越大,可以同時運行的程序越多,系統的響應速度也越快。由于內存是一種易失性存儲器,斷電后其中的數據會丟失,因此它不適合長期保存數據。

硬盤則是用于長期存儲數據的設備。無論是操作系統、應用程序還是用戶文件,都需要存儲在硬盤上。硬盤的容量決定了可以保存多少數據。與內存不同,硬盤是非易失性的,即使斷電后數據也不會丟失。

????????選擇合適的內存容量需要考慮用戶的使用場景。對于普通家庭用戶來說,8GB內存通常已經足夠使用,因為許多非專業軟件在32位環境下運行時對內存的需求不會超過4GB。然而,如果用戶經常運行大型應用或游戲,則可能需要更大的內存來保證流暢的操作體驗。在這種情況下,升級到16GB甚至更高容量的內存可能是有益的。

????????至于硬盤的選擇,這取決于用戶需要存儲的數據量以及性能需求。傳統的機械硬盤(HDD)提供較大的存儲空間且成本較低,而固態硬盤(SSD)雖然價格較高,但提供了更快的數據讀寫速度。對于追求高性能的用戶,可以選擇SSD作為系統盤以加快啟動和加載時間,同時搭配HDD用作大容量數據存儲。

——以上內容來自于【C知道?】AI引擎的檢索結果,非本人總結成果,特此說明。

綜上所述,在決定內存和硬盤大小時,應當基于實際的應用需求和個人偏好做出選擇。確保內存能滿足多任務處理的需求,同時硬盤要有足夠的空間來存放所有必要的數據,并根據預算和技術要求權衡不同類型硬盤的優勢。

(八)操作符(運算符)

1、操作符=運算符

操作符 = 運算符。

在編程語言中,操作符(Operator)和運算符通常指的是同一類概念,即用于執行特定操作的符號或關鍵字。不過,在某些上下文中,這兩個術語可能會有不同的側重點。

(1)操作符是一個更廣泛的概念,它可以包括運算符以及其他類型的符號,例如賦值操作符、比較操作符、邏輯操作符等1。這些操作符可以作用于一個或多個操作數來產生結果。例如,在表達式 a + b 中,+是一個加法運算符,它屬于操作符的一種,用來對兩個操作數 ab 執行加法操作。

(2)運算符則特指那些能夠執行數學計算或者邏輯判斷的操作符。常見的運算符有算術運算符如加減乘除、關系運算符如等于不等于、以及邏輯運算符如與或非等2。比如,在JavaScript中的一元操作符如遞增(++)和遞減(–),它們會直接修改變量的值,并且根據操作符的位置不同(前置或后置),會影響表達式的返回值1

因此,可以說所有的運算符都是操作符,但不是所有的操作符都是運算符。例如,條件運算符(?:)、成員訪問運算符(. 和 [])、函數調用運算符(())等就不是傳統意義上的運算符,因為它們并不執行數學上的運算,而是用于其他目的,如控制流程或對象屬性訪問。

示例:

下面是一些簡單的示例代碼,展示了如何使用不同的操作符/運算符:

(1)算術運算符

let x = 5;
let y = 3;
console.log(x + y); // 輸出 8
console.log(x - y); // 輸出 2
console.log(x * y); // 輸出 15
console.log(x / y); // 輸出 1.666...

(2)邏輯運算符 (JavaScript)

let a = true;
let b = false;
console.log(a && b); // 輸出 false
console.log(a || b); // 輸出 true
console.log(!a);     // 輸出 false

(3)自增自減運算符 (JavaScript)

let count = 0;
console.log(count++); // 輸出 0, 然后 count 變為 1
console.log(++count); // count 先變為 2, 然后輸出 2

通過以上示例可以看出,無論是操作符還是運算符,它們都是構建程序邏輯的重要組成部分。

2、雙目操作符?

簡單來說,雙目操作符即有兩個操作數,我們在此基礎上做進一步說明——

雙目操作符是指需要兩個操作數才能完成運算的操作符。

在編程語言中,尤其是像C、C++這樣的系統級語言中,雙目操作符被廣泛使用來執行各種類型的計算和邏輯判斷。

下面展示一些應用場景——

(1)算術運算

最常見的雙目操作符是算術操作符,如加法 +、減法 -、乘法 *、除法 / 和取模 %。這些操作符用于執行基本的數學運算。

int a = 5 + 3; // 加法
int b = 10 - 2; // 減法
int c = 4 * 6; // 乘法
float d = 9.0 / 3.0; // 除法
int e = 10 % 3; // 取模,得到余數
(2)比較運算

比較操作符也是雙目操作符的一種,它們用來比較兩個值之間的關系,例如是否相等、大于或小于等。

  • 相等 ==

  • 不相等 !=

  • 大于 >

  • 小于 <

  • 大于等于 >=

  • 小于等于 <=

if (x == y) { /* 如果x等于y,則執行某些代碼 */ }
if (a > b) { /* 如果a大于b,則執行其他代碼 */ }
(3)位運算

按位與 &、按位或 |、異或 ^、左移 << 和右移 >> 是處理二進制數據時非常有用的雙目操作符。

int result_and = 5 & 3; // 按位與
int result_or  = 5 | 3; // 按位或
int result_xor = 5 ^ 3; // 異或
int shift_left = 1 << 2; // 左移兩位
int shift_right = 4 >> 1; // 右移一位
(4)賦值運算

除了簡單的賦值 = 外,還有復合賦值操作符,比如 +=, -=, *=, /=, %= 等。

int x = 10;
x += 5; // 等價于 x = x + 5;

注意:

當涉及到具有副作用的操作符時(例如自增 ++ 和自減 --),應當小心使用以避免產生難以調試的問題。因為這些操作符不僅改變了變量的值,而且可能影響程序的行為取決于它們出現的位置。

(5)演示?

加、減
?+? ? ?-
+=? ?-=

賦值操作符?

#include<stdio.h>int main()
{int n = 0;//初始化n = 10;//賦值,= -->賦值操作符return 0;
}
int a = 3;
int b = 5;
int c = 0;
c = b = a + 3;//連續賦值,從右往左依次賦值
//可拆開賦值
b = a + 3;
c = b;

?復合賦值符

a = a + 3; --> a += 3;

?除法:/(整除)。

?下面舉幾個例子:

(1)整數除法

6 / 4 = 1……2

? ? ? ? ? ?商? ? ?余數

int r? = 8 / 2;

(2)浮點數除法

6.0 / 4 = 1.5;

double 6.0 / 4 = 1.500000;double r = 6.0 / 4 = 1.500000;double r = 6.0 / 4.0 = 1.500000;

?兩數至少要保證有一個為小數(即浮點數),這就是浮點數除法。

除法:%——表示取模(余)運算-->用于整數,不用于浮點數。

int r = 6 % 4;//6/4得到的余數

?負數取模——結果正負號由第一個運算數決定。

(6) 變量為什么要初始化
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

結尾

下文我們復盤單目操作符。

只要是主動學習,只要你有興趣,只要你喜歡學,到處是時間。

往期回顧:

【C語言】學習過程教訓與經驗雜談:思想準備、知識回顧(三)

【C語言】學習過程教訓與經驗雜談:思想準備、知識回顧(二)

【C語言】學習過程教訓與經驗雜談:思想準備、知識回顧(一)

結語:本篇文章內容回顧到這里就結束了,希望對大家伙有所幫助。如果大家覺得文章有幫助的話,記得一鍵四連——點贊、收藏、關注、評論!謝謝uu們的支持!

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

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

相關文章

Vim 指令

Vim 是一款功能強大但學習曲線陡峭的文本編輯器&#xff0c;核心在于其模式化操作。掌握常用指令能極大提升效率。以下是指令分類整理&#xff1a;一、核心模式切換 (必須掌握&#xff01;)i&#xff1a;在光標前進入 插入模式 (Insert Mode)a&#xff1a;在光標后進入 插入模式…

vue2中使用xgplayer播放流視頻

1、官網 2、安裝后無法播放時&#xff0c;經測試&#xff0c;需要降低版本 "xgplayer-hls": "2.2.2","xgplayer": "2.31.6"改為以上版本可以正常播放 3、完整使用 &#xff08;1&#xff09;引入 import xgplayer import hlsjsPlayer…

Jmeter進階篇(35)完美解決Jmeter轉換HTML報告報錯“Begin size 0 is not equal to fixed size 5”

今天博主在使用Jmeter運行完壓測,使用生成的csv文件,運行以下命令: C:\apache-jmeter-5.2.1\bin>jmeter -g C:\res.csv -o C:\report生成HTML報告時,發現報錯“Begin size 0 is not equal to fixed size 5”。 問題原因 原因是我:本地用的是JDK17,但Jmeter5.2.1僅支…

linux中tcpdump抓包中有組播數據,應用程序收不到數據問題

問題描述服務器運行正常&#xff0c;維保需要&#xff0c;重啟服務器后應用程序無法收到組播的媒體數據。百思不得其解。原因分析最終的定位原因是 linux系統的自我保護機制導致的。rp_filter&#xff08;反向路徑過濾&#xff09;是Linux內核的一個安全特性&#xff0c;用于防…

人工智能-基礎篇-29-什么是低代碼平臺?

低代碼平臺&#xff08;Low-Code Development Platform, LCDP&#xff09;是一種通過可視化界面和少量代碼&#xff08;或無需代碼&#xff09;快速構建應用程序的開發工具。它的核心目標是通過簡化開發流程&#xff0c;降低技術門檻&#xff0c;使企業能夠更高效地響應業務需求…

PyTorch隨機擦除:提升模型抗遮擋能力

PyTorch中內置的隨機擦除&#xff08;Random Erasing&#xff09;數據增強通過torchvision.transforms.RandomErasing實現&#xff0c;以下是原理和用法的詳細說明&#xff1a;核心原理正則化作用&#xff1a; 隨機擦除在訓練圖像上隨機遮蓋一個矩形區域&#xff0c;模擬遮擋場…

微信小程序交互精髓:點擊操作與狀態管理實戰

目錄 一、點擊事件綁定&#xff1a;bindtap 與 catchtap 的正確使用 基礎語法對比 事件對象詳解 二、點擊切換選中狀態&#xff1a;數據驅動視圖的實現 1. 單元素狀態切換 2. 多元素單選狀態 3. 多元素多選狀態 三、樣式動態切換&#xff1a;數據綁定與 CSS 的完美結合 …

Language Models are Few-Shot Learners: 開箱即用的GPT-3(二)

接上一篇 Approach 前面的摘要和Introduction做了一些概要性的介紹,論文在第二章,也就是approach中,介紹了模型的設計,zero,one,few-shot的設計等等。 這一章一開頭就說,GPT-3的結構和GPT-2的結構一樣,只是在相應的把模型尺寸,數據規模,訓練時間等增加了。Our bas…

【養老機器人】核心技術

1. 毫米波雷達如何檢測心跳和呼吸&#xff1f;毫米波雷達&#xff08;通常工作在60GHz或77GHz頻段&#xff09;可以探測到人體胸腔的微米級位移&#xff0c;而心跳和呼吸會引起胸腔的周期性運動&#xff1a;呼吸&#xff1a;幅度較大&#xff08;約5-10毫米&#xff09;&#x…

二 Javascript 入門

我們 從已經知道了 Javascript的歷史以及什么是Javascript&#xff0c;那實際編寫的時候在哪里編寫&#xff1f; script 標簽 HTML 為我們提供了無數的標簽來做無數的事情。例如&#xff0c; 用于為段落添加邊距&#xff0c; 用于使文本加粗&#xff0c; 用于在網頁上嵌入音…

《信息技術服務監理 第5部分:軟件工程監理規范》(GB/T 19668.5-2018)標準解讀

《信息技術服務監理 第 5 部分&#xff1a;軟件工程監理規范》&#xff08;GB/T 19668.5-2018&#xff09;是規范軟件工程監理服務的國家標準&#xff0c;旨在為軟件工程監理的規劃設計、招標、設計、實施、驗收等階段及相關支持過程提供明確的監理要求、服務內容和實施要點。 …

RedisJSON 路徑語法深度解析與實戰

一、兩種路徑語法概覽語法類型觸發標志簡介JSONPath以 $ 開頭全功能路徑&#xff0c;支持遞歸 (..)、通配符 (*)、切片 ([start:end:step])、過濾 (?())、腳本表達式等Legacy以 . 或鍵名開頭早期版本&#xff08;v1&#xff09;遺留語法&#xff0c;只支持簡單的點式和中括號&…

從Rust模塊化探索到DLB 2.0實踐|得物技術

一、前言在云原生架構高速迭代的背景下&#xff0c;基礎設施的性能瓶頸與安全隱患成為技術演進的關鍵挑戰。本文系統記錄了團隊基于Rust語言改造Nginx組件的完整技術路徑&#xff1a;從接觸Cloudflare的quiche庫&#xff0c;引發對Rust安全特性的探索&#xff0c;到通過FFI實現…

【 MySQL】一點點相關的記錄

打開 MySQL Workbench 并連接到你的數據庫在 MySQL Connections 下&#xff0c;選擇連接的數據庫實例&#xff08; Local instance MySQL80&#xff09;登錄時輸入 用戶名 和 密碼。 root&#xff0c;密碼是在 MySQL 安裝時設置的密碼創建新數據庫登錄后&#xff0c;在 MySQL W…

旅游企業如何通過數字化轉型實現高效運營

在旅游行業競爭日益激烈、游客需求日趨多樣的當下&#xff0c;數字化管理成為旅游企業提升競爭力的關鍵協同辦公系統以其豐富功能與靈活特性&#xff0c;為旅游行業帶來全新的數字化變革&#xff0c;助力企業高效運營。優化行程規劃與調度旅游行程的規劃與調度繁雜且關鍵。協同…

大數據Spark(六十二):Spark基于Yarn提交任務流程

文章目錄 Spark基于Yarn提交任務流程 一、Yarn-Client模式 1、提交命令 2、任務執行流程 二、Yarn-Cluster模式 1、提交命令 2、任務執行流程 Spark基于Yarn提交任務流程 在Yarn模式下&#xff0c;Spark的任務提交同樣根據Driver程序運行的位置不同&#xff0c;分為cli…

Docker 高級管理-容器通信技術與數據持久化

(1)創建一個叫 my-net 的 bridge 類型的網絡(2)查看都有哪些網絡(3)運行一個容器井連接到新建的 my-net 網絡(4)運行一個容器井加入到 my-net 網絡2:Host 模式由于使用了 Host 模式&#xff0c;容器會直接使用宿主機的網絡端口&#xff0c;因此可以直接在宿主機上通過 localhos…

在 Ubuntu 24.04 中安裝 Python 2.7、pip 及 mysqlclient==1.4.6 的完整指南

在 Ubuntu 24.04 中安裝 Python 2.7、pip 及 mysqlclient1.4.6 的完整指南 前言 隨著 Ubuntu 24.04 的發布&#xff0c;許多舊的軟件包已被移除或更新&#xff0c;但老項目需要 Python 2 。本文將詳細介紹自己如何在 Ubuntu 24.04 中成功安裝 Python 2.7、pip 以及 mysqlclient…

doker以及網站案例

一.docker搭建1.安裝dockerapt-get install docker.io docker-compose2.編寫配置文件&#xff08;注意路徑正確&#xff09;vim /etc/systemd/system/docker.service.d/http-proxy.conf[Service] Environment"HTTP_PROXYhttp://科學上網訪問的ip:端口" Environment&q…

【HarmonyOS Next之旅】DevEco Studio使用指南(四十一) -> 獲取自定義編譯參數

目錄 1 -> HAP/HSP運行時獲取編譯構建參數 1.1 -> 生成BuildProfile類文件 1.2 -> 在代碼中獲取構建參數 1.3 -> 默認參數 1.4 -> 自定義參數 2 -> HAR運行時獲取編譯構建參數 2.1 -> 生成BuildProfile類文件 2.2 -> 在代碼中獲取構建參數 2.…