sizeof和strlen( )

1、C語言預處理定義

格式:#define NAME value

#define:c語言規定預處理開頭書寫

NAME:常量名,大寫儘量使用有意義的名字,提高程序的可讀性。

value:常量,可以是整型數、浮點型數、字符或字符串。(字符帶上單引號、字符串帶上雙引號)

2、sizeof和strlen( )

如:

#include<stdio.h>

#include<string.h>

#define PRAISE "you are an extraordinary being."

int main(void)

{

int name[32];

printf("what is your name:");

scanf("%s",name);

printf("hello ,%s . %s\\n",name,PRAISE);

printf("your name of %d letters occupies %d menory cells.\\n",

strlen(name),sizeof name);

printf("the phrase of praise has %d letters",

strlen(PRAISE));

printf("and occupies %zd memory cells.\\n",sizeof PRAISE);

return 0;

}

輸出結果:


sizeof和strlen( )


首先:strlen( )包含在string.h庫文中,使用時要在程序前進行庫調用:#include<string.h>

其次:sizeof和strlen()雖然同為查詢字符串或數組佔用多少字節存儲空間。但是sizeof查詢的數組變量聲明的大小,和實際存儲在數組中的字符多少無關,而對於宏定義(#define PRAISE "you are an extraordinary being.")運用sizeof查詢它的字節數為實際字符串的大小+1.當然strlen()則剛好相反。

最後:strlen( )在查詢時把備查參數放到小括號裡面,對於sizeof沒有這樣的書寫要求。

3、明示常量詳解

對於C語言常量可以說是整個數據系統,但是有時候我們使用一些特殊的常量,比如int類型最大負整數,char類型的位數、float類型的最大正整數等等。為此C語言專門為這些常量做了一些標準,使用的時候我們直接調用即可。

printf("MAXium int value on this system=%d\\n",INT_MAX);

這些標準的常量被定義在limits.h和float.h兩個頭文件中。當然在程序中要想使用必須預處理。#include<limits.h>和#include<float.h>,常用的明示常量分為整型和浮點型,下面分別對它們做一個簡要介紹。/<float.h>/<limits.h>

3.1 整型明示常量包括int和char

我們在使用的時候不用每次查表或記下來,只要理解下面的幾點就可以


sizeof和strlen( )


第1點:只要我們記住BIT(位)、MAX (最大值)、MIN(最小值)這三個修飾詞。

第2點:SCHAR是signed char,UCHAR是unsigned char,USHRT是unsigned short......

3.2 浮點型明示常量float

FLT_MANT_DIG:float類型的尾數位數

FLT_DIG:float類型的最少有效數字位數(十進制)


sizeof和strlen( )


分享到:


相關文章: