1. 程式人生 > >讓你不再怕sizeof

讓你不再怕sizeof

#include<stdio.h>

#include<malloc.h>

void test(int a[],intn)

{

printf("%d\n",sizeof(a));

}

intmain(void)

{

   int a[100];

   char * p = NULL;

   char * ss1 ="0123456789";

   char ss2[] ="0123456789";

   char ss3[100] ="0123456789";

   int  ss4[100];

   char q1[] = "abcddd";

   char q2[] = "a\n"

;

   char *q3 ="a\n";

   char *str1 = (char*)malloc(100);

   void *str2 = (void*)malloc(100);

   test(a,100);         // 4位元組,陣列名進入函式之後退化為指標,指標佔四個位元組。

   printf("%d\n",sizeof(*p));     // 1位元組,*p字元型,所以佔一個位元組

   printf("%d\n",sizeof(p));      // 4位元組  ,指標佔四個位元組

   printf("%d\n",sizeof(a[100]));   // 4位元組,陣列之外的元素,執行結果為4位元組,也可能與後邊的儲存內容相關

   printf("%d\n",sizeof(a));         // 400位元組,整個陣列,佔四百位元組

   printf("%d\n",sizeof(&a));      // 400位元組 ,整個陣列,佔四百位元組

   printf("%d\n",sizeof(&a[0]));   // 4位元組 ,a[0]的地址佔四個位元組

   printf("%d\n",sizeof(ss1));     // 4位元組 ,指標佔四位元組

   printf("%d\n",sizeof(ss2));      // 11位元組  ,未規定大小的陣列,裡邊儲存的字元加\0,所以為11位元組

   printf("%d\n",sizeof(ss3));       // 100位元組   字元陣列100位元組

   printf("%d\n",sizeof(ss4));       // 400位元組    整形陣列400位元組

   printf("%d\n",sizeof(q1));        // 7位元組        未規定大小的陣列,裡邊儲存的字元加\0,所以為7位元組

   printf("%d\n",sizeof(q2));        // 3位元組        未規定大小的陣列,裡邊儲存的字元加\0與\n為單字元,所以為3位元組

   printf("%d\n",sizeof(q3));        // 4位元組     指標

   printf("%d\n",sizeof(str1));      // 4位元組     指標

   printf("%d\n",sizeof(str2));      // 4位元組     指標

   return 0;

}

最後輸出結果:

4
1
4
4
400
400
4
4
11
100
400
7
3
4
4
4
請按任意鍵繼續. . .


相關推薦

不再sizeof

#include<stdio.h> #include<malloc.h> void test(int a[],intn) { printf("%d\n",sizeof(a)); } intmain(void) {    int a[100]

Android 軟鍵盤的全面解析,不再控件被遮蓋

() details 聲明 token andro 博文 blog 轉載 targe 博客地址:http://blog.csdn.net/l540675759/article/details/74528641 (2)在軟鍵盤彈出時,是否需要Activity對此進行調整adj

【轉】不再害怕指針——C指針詳解(經典,非常詳細)

有一個 情況 value 第一個字符 接下來 意思 strcpy abcdefg 數值 前言:復雜類型說明 要了解指針,多多少少會出現一些比較復雜的類型,所以我先介紹一下如何完全理解一個復雜類型,要理解復雜類型其實很簡單,一個類型裏會出現很多運算符,他們也像普通的表

不再害怕指針——C指針詳解(經典,非常詳細)

[0 返回 hello spa 程序 string 和數 過程 建議 http://blog.csdn.net/soonfly/article/details/51131141 前言:復雜類型說明 要了解指針,多多少少會出現一些比較復雜的類型,所以我先介紹一下如何完

不再害怕指針

加減 logs 而不是 不一致 數值 [0 strcmp 作用 james 1.細說指針   指針是一個特殊的變量, 它裏面存儲的數值被解釋成為內存裏的一個地址。要搞清一個指針需要搞清指針的四方面的內容: 指針的類型、指針所指向的類型、指針的值或者叫指針所指向的內存區、

【分享】不知道怎麽學java?java學習路線送上!不再迷茫!

事件 其他 script for 數據類型 java開發 數據 這一 height 學習Java之前,先別急,靜下心來好好想想:1)你對學習Java是否有興趣?2)你是否能靜下心來堅持不懈地學習?嗯,這是個容易但又絕對不應該忽略的問題,你確信自己對Java感興趣、而且又有吃

不再戀家的9款小眾時尚的酒店網站設計

一場說走就走的旅行少不了一家精挑細選的酒店。出門在外,沒有一個舒適的住處,恐怕旅行的記憶也並不是那麽美好。大牌酒店住不起,小眾酒店性價比高,但哪家最合適?網上攻略必不可少。 作為主觀性非常強的視覺性動物,選擇酒店的時候除了看價格,當然也會更看重酒店的網頁設計風格。如果酒店的網站設計都亂糟糟,

不再害怕指標的應用-全程模擬+註解(第二部分陣列)

讓你不再害怕指標的應用-全程模擬+註解(第二部分:陣列)(持續更新) 寫此文章一是為了分享,二是為了溫習! 預計包含的內容為:變數如int  、陣列  、結構體  、列舉 、聯合體、(這個自己也在瞭解)。 軟體:CODE::Blocks  &n

一篇文章不再擔心浮動

浮動的效果 文件流 文件流是文件中可顯示物件在排列時所佔用的位置。 將窗體自上而下分成一行行, 並在每行中按從左至右的順序排放元素,即為文件流.(自己的理解是從頭到尾按照文件的順序,該在什麼位置就在什麼位置,也可以按照上面的意思理解,自上而下,自左到右的順序) 浮動的特點

小程式雲開發不再加班

    最近自己正做一個新聞類的小程式,是基於小程式雲開發的,在做小程式專案的過程從中可以感覺得到使用雲開發確實方便是很多。有關於雲開發後面我也會講到,畢竟這個專案就是使用的雲開發,更多的有關雲開發內容有需要的小夥伴可以去看官方文件, 雲開發文件。

不再害怕指標——C指標詳解(經典,非常詳細)

前言:複雜型別說明     要了解指標,多多少少會出現一些比較複雜的型別,所以我先介紹一下如何完全理解一個複雜型別,要理解複雜型別其實很簡單,一個型別裡會出現很多運算子,他們也像普通的表示式一樣,有優先順序,其優先順序和運算優先順序一樣,所以我總結了一下其原則:從變數名處起

Hibernate常見面試題,不再懼怕面試

1、get()和load() 的區別 1) 傳送sql的時機: load是延遲載入 get是立即載入; 2) 執行出錯後, get方法拋異常為NullPointException,返回的是null,此null是一個真實的物件。而load方法報ObjectN

javapoet-不再書寫無聊的程式碼(一)

前言 自從從事Android開發以來,一直做的應用層開發,程式碼寫多了,感覺一直在一個瓶頸中,每天寫程式碼無非就是調介面,填資料到頁面,再就是做些簡單的自定義View,寫出產品經理希望的介面,然後就完事,也很少做些介面的調優和優化,一直想學習寫java和and

(2)不再害怕指標--指標的算術運算

誤區一、輸出答案為Y 和o 誤解:ptr 是一個char 的二級指標,當執行ptr++;時,會使指標加一個sizeof(char),所以輸出如上結果,這個可能只是少部分人的結果.誤區二、輸出答案為Y 和a 誤解:ptr 指向的是一個char *型別,當執行ptr++;時,會使指標加一個sizeof(char

帶著一步一步在Kotlin使用註解,不再害怕註解

背景知識: Kotlin中有以下四種元註解(用來定義註解的註解): @Target:限定註解標記的目標(屬性、方法、類、擴充套件等等) @Retention:限定註解是否儲存到位元組碼檔案中;在執行時通過反射是否可見(預設情況下以上兩個條件均為真) @Repeatab

【C語言】不再害怕指標——C指標詳解(經典,非常詳細)

前言:複雜型別說明    要了解指標,多多少少會出現一些比較複雜的型別,所以我先介紹一下如何完全理解一個複雜型別,要理解複雜型別其實很簡單,一個型別裡會出現很多運算子,他們也像普通的表示式一樣,有優先順序,其優先順序和運算優先順序一樣,所以我總結了一下其原則:從變數名處起,根

薦書 | 5本數學科普不再“畏懼”數學,感受數學的內在美

最近,小木瞭解了許多關於數學的書籍,簡直打開了小木數學新世界的大門。出版社還寄了一些樣書給小木,

10步帶認識大資料和雲端計算,圖文並茂不再蒙圈

第一步:大資料 “大資料”這個概念是近幾年開始火起來的,現在可謂是無處不在了。在瞭解什麼是大資料之前,我們先了解一下什麼是傳統資料? 傳統資料就是IT業務系統裡面的資料,如客戶資料、財務資料等。這些資料是結構化的,量也不是特別大,一般只是TB級。對比傳統資料,還有一種叫“新資料”,是來源於社

一起探究Retrofit 原始碼,不再畏懼Retrofit的面試提問

使用方式 一、宣告一個介面,並用介面描述 request public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") S

MySQL資料庫上雲四年打磨,五大經典案例不再“藍瘦”

通過以往的經驗分析得出,資料庫上雲問題可能有以下幾種情況: 1.資料庫跨平臺遷移(PG->MySQL、Oracle->MySQL),淘寶以前就有大量的Oracle遷到MySQL,也是發生過很多問題。 2.跨版本升級(MySQL:5.1->5.5、5.