和enter一起學習C語言-計算變量所佔字節數

【知識準備】

函數:printf()system()

其他:sizeof運算符

【實例描述】

本例將介紹各種類型的變量在計算機中所佔字節的大小,以便大家對計算機資源進行合理利用。程序如果大的話,程序員就需要對程序進行優化。有時候,變量會很多,佔用很大的內存,這時就需要對變量類型進行適當的選取,選取得好也可以節約很多內存。但是如何知道變量到底佔多少字節呢?下面就講述如何對變量進行測量。

【實現過程】

本例實現功能比較重要,程序主要使用的是sizeof()運算符對各類變量進行所佔內存字節數的測量。當然,sizeof()的用法還有很多,這裏只是列舉部分用法,更多用法,大家可以自行探究。

【代碼解析】

本例將舉出實際案例代碼使用sizeof()對變量所佔字節數進行測量,也包含對內置類型的直接測量。詳細代碼如下:

// 和enter一起學習C語言-計算變量所佔字節數

// 開發環境:Visual Studio 2019

// 頭文件 
#include <stdio.h>					// 包含printf的頭文件
#include <stdlib.h>					// 包含system的頭文件

// 主函數 
int main(int argc, char* argv[])
{
	// 對C語言內置類型的所佔字節數的測試
	printf("size of char is:%d\n", sizeof(char));// 檢測字符型數據所佔字節數 
	printf("size of short is:%d\n", sizeof(short));// 檢測短整型數據所佔字節數 
	printf("size of int is:%d\n", sizeof(int));// 檢測整型數據所佔字節數 
	printf("size of short int is:%d\n", sizeof(short int));// 檢測短整型數據所佔字節數 
	printf("size of long int is:%d\n", sizeof(long int));// 檢測長整型數據所佔字節數 
	printf("size of float is:%d\n", sizeof(float));// 檢測浮點型數據所佔字節數 
	printf("size of double is:%d\n", sizeof(double));// 檢測雙精度型數據所佔字節數 

	// 對字符及字符串數組所佔字節數的測量
	char a[] = { 'a','b','c','d','e' };// 初始化數組a 
	printf("size of a[] is:%d\n", sizeof(a));// 輸出數組a所佔字節數 
	char b[] = "abcde";// 初始化數組b 
	printf("size of b[] is:%d\n", sizeof(b));// 輸出數組b所佔字節數 
	char c[][3] = { {'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'} };// 初始化二維數組c 
	printf("size of c[][] is:%d\n", sizeof(c));// 輸出二維數組c所佔字節數 
	printf("sizeof(c[0]) is:%d\n", sizeof(c[0]));// 輸出二維數組c一行所佔字節數 
	printf("sizeof(c[0][0]) is:%d\n", sizeof(c[0][0]));// 輸出二維數組c一個元素所佔字節數 

	// 對指針所佔字節數的測量
	char* p = 0;// 初始化字符指針 
	printf("sizeof char *p is:%d\n", sizeof(p));// 輸出字符型指針所佔字節數 

	// 對字符數組所佔字節數的測量
	char d[][5] = { "abcc","deff","ghii","jkll" };// 初始化字符數組 
	printf("sizeof d[0] is:%d\n", sizeof(d[0]));// 輸出一行字符所佔字節數 
	printf("sizeof d[0][0] is:%d\n", sizeof(d[0][0]));// 輸出二維數組一個元素所佔字節數 

	// 使程序處於掛起狀態,等待用戶按鍵以繼續操作
	system("pause");

	// 返回整形值0表示程序運行正確
	return 0;
}

 其中:

  • 第13~19行對C語言提供的內置數據類型各自所佔的字節數進行測量並輸出;
  • 第22~29行對字符所佔字節數,使用sizeof()進行測量所佔字節數並輸出;
  • 第32~33行對指針所佔字節數,使用sizeof()進行測量所佔字節數並輸出;
  • 第36~38對數組所佔字節數,使用sizeof()進行測量所佔字節數並輸出。

【運行效果】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章