還是基礎不夠紮實,有一些基本的問題都不是很清楚,這裡記錄一下,以備遺忘。
1.關於sizeof與strlen
如果變數是陣列,那麼呼叫sizeof的結果就是陣列的大小,但是如果只是乙個指標,那麼他只是返回乙個sizeof(型別)的值。
而strlen是判斷字串的長度,所以乙個陣列的最後一位是strlen(s)。
引用一下:
一、sizeof
sizeof(...)
是運算子,在標頭檔案中
typedef
為unsigned int
,其值在編譯時即計算好了,引數可以是陣列、指標、型別、物件、函式等。
它的功能是:獲得保證能容納實現所建立的最大物件的位元組大小。
由於在編譯時計算,因此
sizeof
不能用來返回動態分配的記憶體空間的大小。實際上,用
sizeof
來返回型別以及靜態分配的物件、結構或陣列所佔的空間,返回值跟物件、結構、陣列所儲存的內容沒有關係。
具體而言,當引數分別如下時,
sizeof
返回的值表示的含義如下:
陣列——
編譯時分配的陣列空間大小;
指標——
儲存該指標所用的空間大小(儲存該指標的位址的長度,是長整型,應該為4);
型別——
該型別所佔的空間大小;
物件——
物件的實際占用空間大小;
函式——
函式的返回型別所佔的空間大小。函式的返回型別不能是
void
。**************
二、strlen
strlen(...)
是函式,要在執行時才能計算。引數必須是字元型指標(
char*
)。當陣列名作為引數傳入時,實際上陣列就退化成指標了。
它的功能是:返回字串的長度。該字串可能是自己定義的,也可能是記憶體中隨機的,該函式實際完成的功能是從代表該字串的第乙個位址開始遍歷,直到遇到結束符
null
。返回的長度大小不包括
null
。*****************
2 libssh庫呼叫
libssh庫呼叫注意之前是否存在so檔案,更新。
3 fgets與fread的區別
乙個是整行讀取,乙個是讀取指定位元組。
4 函式傳參過程,如果出現指標傳遞,那麼注意要傳送相應的指標內容大小,否則很容易造成記憶體混亂。
學習Ajax時遇到的若干問題
1.在ie中除錯出現innerhtml行錯誤 未知的執行時錯誤 最近在試著跟著書本學習ajax,我用的是visual studio2008,將示例 寫上後,發現除錯時出現題目所說的問題,後來查了若干的帖子,發現有個不錯 其中所說的解決辦法對我很有效,我就分享下了。他說有兩條解決辦法 1 將你的後台頁...
學習vue router遇到的若干問題
1.學習vue router過程中,在route index.js新增一條路由時候,報錯,如下 原因是未安裝sass loader和node sass,解決方法 npm install sass loader d npm install node sass d 安裝完之後重啟專案,又出現如下圖這個問...
C 模板的若干問題
1.為什麼要使用模板?對於特點相似的類,比如有相同的方法相似的成員,使用模板可以使得這些類得到進一步的抽象。也就是寫乙個超級形態的類。這樣至少有乙個淺顯的好處,只用寫一次。但實際上,可能更方便維護,也具有更一直的特性。對於函式,作用也類似,也就是形成乙個函式簇,這個函式簇的所做的動作是高度相似的。使...