2016年11月24日 星期四

C語言: 資料空間

面試時,常常會遇到一些考題是有關資料空間,下面範例整理一些例子。
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[]) {
 char str[] = "Hello";
 char *p = str;
 int n = 10;
 
 printf("sizeof(str) = %d\n", sizeof(str));
 printf("sizeof(p) = %d\n", sizeof(p));
 printf("sizeof(int) = %d\n", sizeof(n)); 
 return 0;
}
執行結果
sizeof(str) = 6
sizeof(p) = 8
sizeof(int) = 4


1. str[]: 宣告字元陣列時,會自動在字串後加一個換行字元'\n',ASCII為10,所以原本的字元數還需要加一個換行字元,才是整個字元陣列的長度。
2. p: 宣告指標主要用來存放位址使用,位址的空間會隨著系統是32位元或64位元而改變,如果系統是32位元,則指標長度是4 bytes,如果系統是64位元,則指標長度為8 bytes。
3. int: 宣告整數時,長度為4 bytes。

沒有留言:

張貼留言