summary
@[toc]
# 一、關於二維陣列的學習。
## 1、測試過程
關於二維陣列自己其實學的差不多了,但發現二維陣列作為形參時自己理解的還不是很到位,特此寫下來測試demo分析。
編譯過程發現:
執行結果:
總體來分析:總體結果符合預期,就是用二重指標這個地方為什麼會段錯誤?
## 2、彙編程式碼分析
分析如下:二維陣列名本身還是一個指標,只不過是一個特殊型別的指標(陣列指標),代表這個陣列的首地址,我們定義引數為int array[3][5]或者int (*array)[5]時,會告訴編譯器:這是一個陣列指標,因此c標準規定取元素時必須**array而且跨度是一維陣列的長度,但編譯完以後的彙編程式碼可以看到只是取了一次地址(*ptr),可以看到*array = array.
對於一維陣列,只有當陣列名在表示式中使用時,編譯器才會產生一個指標常量,形參會把指標常量賦給一個指標(頂層const)。而只有以下兩種情況,才不被當做指標常量(來自c和指標P141),.
①、sizeof(陣列名),返回的是陣列長度,而不是指向陣列的指標長度,編譯時一般都會確定。
②、&陣列名,產生一個指向陣列的指標,而不是指向某一個指標常量的指標。
# 二、關於函式棧的學習。
驗證csdn上的評論:形參也佔用棧記憶體。
其實下面的圖中右邊的圖是不正確的(2和4在上面),早期的CISC結構是棧密集型,引數的傳遞是通過呼叫者儲存,具體可以參考彙編程式碼。其實後來的CISC也可以用暫存器傳遞引數(6個,參考CSAPP)。
相關文章
- Futu summary
- ACM summaryACM
- Mongoose SummaryGo
- Spinnaker Summary
- System design summary
- Programming languages Domain summaryAI
- 228. Summary Ranges
- The Tokenizers Summary: [EOS],[BOS],[CLS],[SEP]
- An Algorithm Summary of Programming Collective Intelligence (4)GoIntel
- 【文件學習】tensorboardX——summary writerORB
- Summary Functions and Maps(pandas學習三)Function
- 2024 Mar. Week-3 Summary
- percona-toolkit 之 【pt-summary】、【pt-mysql-summary】、【pt-config-diff】、【pt-variable-advisor】說明MySql
- mysql 動態引數(Dynamic System Variable Summary)MySql
- Summary01 - cron任務、grep、find命令
- LeetCode Monotone Stack Summary 單調棧小結LeetCodeMono
- The 1st week summary of devtools community in learnku.comdevUnity
- Percona-Tookit工具包之pt-mysql-summaryMySql
- [Design Pattern] Upload big file - 4. Code Design - part 2 & Summary
- 暫告一段落的高代summary
- statsmodels中的summary解讀(以linear regression模型為例)模型
- cmu15545筆記-併發控制總結(Concurrency Control Summary)筆記
- 藉助HTML5details,summary無JS實現各種互動效果HTMLAIJS
- 學HTML5開發,summary標籤的這些知識不得不知!HTML
- 將C4C Service Request中的summary和其他附件同步到ERP的Billing Request去
- 【Tensorflow_DL_Note17】TensorFlow視覺化學習4_tf.summary模組的詳解視覺化
- 我曾經好像用devtool performance分析過coca的滾動卡頓問題,但是Summary好像結果是System最多devORM
- 使用Wesky.Net.Opentools庫,一行程式碼實現自動解析實體類summary註釋資訊(可用於資料實體文件的快速實現)行程