c語言定義函數(shù)變量類型,c語言定義變量類型有哪些

C語言變量的基本類型有哪些?

c語言的變量有三種類型:char,int,float,double

在廣信等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營(yíng)銷推廣,外貿(mào)網(wǎng)站建設(shè),廣信網(wǎng)站建設(shè)費(fèi)用合理。

其中char為字符類型的變量是八位的,最前一位作為符號(hào)位,后面七位作為數(shù)據(jù)位.它的存儲(chǔ)范圍在-128到127之間.

int整數(shù)類型的變量是16位的,最前一位為符號(hào)位,后面的15位作為數(shù)據(jù)位.它的存儲(chǔ)范圍在-215到215-1.也就是-32768到32767.它不包擴(kuò)小數(shù)點(diǎn)以后的數(shù),在一般編譯器中給int類型賦予帶有小數(shù)的數(shù).編譯器會(huì)自動(dòng)去掉小數(shù)點(diǎn)后面的數(shù)保留整數(shù)部分.

float為浮點(diǎn)數(shù)類型.首先要說明的是浮點(diǎn)數(shù)有兩部分組成,第一部分是指數(shù),也就是多少次冪嘛.第二部分是由尾數(shù)組成也就是一個(gè)數(shù)科學(xué)表示發(fā)之后除去冪那部分剩下的(呵呵!!!)如1.33333.那么c中的浮點(diǎn)數(shù)就有三部分.32位的浮點(diǎn)數(shù)第一位就是第一部分它決定數(shù)的符號(hào).第二部分是八位的指數(shù).第三部分是23位的尾數(shù).所以浮點(diǎn)數(shù)具有6到7位的存儲(chǔ)精確度.范圍為3.4e-38到3.4e+38的數(shù)值.注:3.1415926e+7表示3.1415926.0.在給浮點(diǎn)數(shù)賦值的時(shí)候可以采用如下方法.123.45和1.2345e2是等價(jià)的.

double為雙精度型變量.c編譯器通常用64位來存儲(chǔ)雙精度性變量.它的精確度能夠達(dá)到14到15位.64位中第一位是符號(hào)位.后面的11位是指數(shù)位.最后的52位是尾數(shù).它的范圍是-1.7e-308到1.7e+308.

類型標(biāo)識(shí)符:unsigned,short,register,long和signed.

其中unsigned提示編譯器不要保留符號(hào)位,這樣可以擴(kuò)大數(shù)據(jù)類型正數(shù)的范圍.比如unsigned int的范圍就變位0到65535了.

short類型用在有的編譯器不能給太大的存儲(chǔ)范圍,需要給一個(gè)比較低的溢出界限.比如有的編譯器就用的是32位來存儲(chǔ)int類型.用short來標(biāo)識(shí)它可以保證int是用16位來標(biāo)識(shí)的.

register表示一個(gè)變量可能會(huì)用得很頻繁.需要很快得存取速度所以指定的把它存到寄存器當(dāng)中.

long表示不希望用16位來存儲(chǔ)整形變量時(shí)可以用long指定它用32位來存儲(chǔ)可以得到更大得表示范圍.

當(dāng)然還有l(wèi)ong unsigned int 這樣得類型.

用戶自定義數(shù)據(jù)類型

用戶可以使用typedef來自己定義自己需要得數(shù)據(jù)類型.如下例:

typedef unsigned long int myint;

myint num1;

這樣num1就是unsigned long int類型的了.

c語言有哪幾種變量?如何定義這些變量?舉例說明

基本的數(shù)據(jù)類型有:整形、實(shí)型、字符型、指針型等

擴(kuò)展的數(shù)據(jù)類型有:數(shù)組,結(jié)構(gòu)體,聯(lián)合、共用體等

還可以有自定義的類型。

以下是基本類型的詳細(xì)的說明

最好找本C語言的書看看,紙介質(zhì)版的或電子版的都行,建議看譚誥強(qiáng)的c程序設(shè)計(jì),最新的是第三版,本人學(xué)習(xí)時(shí)是二版

整型量

整型量包括整型常量、整型變量。整型常量就是整常數(shù)。在C語言中,使用的整常數(shù)有八進(jìn)制、十六進(jìn)制和十進(jìn)制三種。

整型常量

1.八進(jìn)制整常數(shù)八進(jìn)制整常數(shù)必須以0開頭,即以0作為八進(jìn)制數(shù)的前綴。數(shù)碼取值為0~7。八進(jìn)制數(shù)通常是無符號(hào)數(shù)。

以下各數(shù)是合法的八進(jìn)制數(shù):

015(十進(jìn)制為13) 0101(十進(jìn)制為65) 0177777(十進(jìn)制為65535)

以下各數(shù)不是合法的八進(jìn)制數(shù):

256(無前綴0) 03A2(包含了非八進(jìn)制數(shù)碼) -0127(出現(xiàn)了負(fù)號(hào))

2.十六進(jìn)制整常數(shù)

十六進(jìn)制整常數(shù)的前綴為0X或0x。其數(shù)碼取值為0~9,A~F或a~f。

以下各數(shù)是合法的十六進(jìn)制整常數(shù):

0X2A(十進(jìn)制為42) 0XA0 (十進(jìn)制為160) 0XFFFF (十進(jìn)制為65535)

以下各數(shù)不是合法的十六進(jìn)制整常數(shù):

5A (無前綴0X) 0X3H (含有非十六進(jìn)制數(shù)碼)

3.十進(jìn)制整常數(shù)

十進(jìn)制整常數(shù)沒有前綴。其數(shù)碼為0~9。

以下各數(shù)是合法的十進(jìn)制整常數(shù):

237 -568 65535 1627

以下各數(shù)不是合法的十進(jìn)制整常數(shù):

023 (不能有前導(dǎo)0) 23D (含有非十進(jìn)制數(shù)碼)

在程序中是根據(jù)前綴來區(qū)分各種進(jìn)制數(shù)的。因此在書寫常數(shù)時(shí)不要把前綴弄錯(cuò)造成結(jié)果不正確。4.整型常數(shù)的后綴在16位字長(zhǎng)的機(jī)器上,基本整型的長(zhǎng)度也為16位,因此表示的數(shù)的范圍也是有限定的。十進(jìn)制無符號(hào)整常數(shù)的范圍為0~65535,有符號(hào)數(shù)為-32768~+32767。八進(jìn)制無符號(hào)數(shù)的表示范圍為0~0177777。十六進(jìn)制無符號(hào)數(shù)的表示范圍為0X0~0XFFFF或0x0~0xFFFF。如果使用的數(shù)超過了上述范圍,就必須用長(zhǎng)整型數(shù)來表示。長(zhǎng)整型數(shù)是用后綴“L”或“l(fā)”來表示的。例如:

十進(jìn)制長(zhǎng)整常數(shù) 158L (十進(jìn)制為158) 358000L (十進(jìn)制為-358000)

八進(jìn)制長(zhǎng)整常數(shù) 012L (十進(jìn)制為10) 077L (十進(jìn)制為63) 0200000L (十進(jìn)制為65536)

十六進(jìn)制長(zhǎng)整常數(shù) 0X15L (十進(jìn)制為21) 0XA5L (十進(jìn)制為165) 0X10000L (十進(jìn)制為65536)

長(zhǎng)整數(shù)158L和基本整常數(shù)158 在數(shù)值上并無區(qū)別。但對(duì)158L,因?yàn)槭情L(zhǎng)整型量,C編譯系統(tǒng)將為它分配4個(gè)字節(jié)存儲(chǔ)空間。而對(duì)158,因?yàn)槭腔菊?,只分? 個(gè)字節(jié)的存儲(chǔ)空間。因此在運(yùn)算和輸出格式上要予以注意,避免出錯(cuò)。無符號(hào)數(shù)也可用后綴表示,整型常數(shù)的無符號(hào)數(shù)的后綴為“U”或“u”。例如: 358u,0x38Au,235Lu 均為無符號(hào)數(shù)。前綴,后綴可同時(shí)使用以表示各種類型的數(shù)。如0XA5Lu表示十六進(jìn)制無符號(hào)長(zhǎng)整數(shù)A5,其十進(jìn)制為165。

整型變量

整型變量可分為以下幾類:

1.基本型

類型說明符為int,在內(nèi)存中占2個(gè)字節(jié),其取值為基本整常數(shù)。

2.短整量

類型說明符為short int或short'C110F1。所占字節(jié)和取值范圍均與基本型相同。

3.長(zhǎng)整型

類型說明符為long int或long ,在內(nèi)存中占4個(gè)字節(jié),其取值為長(zhǎng)整常數(shù)。

4.無符號(hào)型

類型說明符為unsigned。

無符號(hào)型又可與上述三種類型匹配而構(gòu)成:

(1)無符號(hào)基本型 類型說明符為unsigned int或unsigned。

(2)無符號(hào)短整型 類型說明符為unsigned short

(3)無符號(hào)長(zhǎng)整型 類型說明符為unsigned long

各種無符號(hào)類型量所占的內(nèi)存空間字節(jié)數(shù)與相應(yīng)的有符號(hào)類型量相同。但由于省去了符號(hào)位,故不能表示負(fù)數(shù)。 下表列出了Turbo C中各類整型量所分配的內(nèi)存字節(jié)數(shù)及數(shù)的表示范圍。

類型說明符 數(shù)的范圍 分配字節(jié)數(shù)

int -32768~32767 ■■

short int -32768~32767 ■■

signed int -32768~32767 ■■

unsigned int 0~65535 ■■

long int -2147483648~2147483647 ■■■■

unsigned long 0~4294967295 ■■■■

整型變量的說明

變量說明的一般形式為: 類型說明符 變量名標(biāo)識(shí)符,變量名標(biāo)識(shí)符,...; 例如:

int a,b,c; (a,b,c為整型變量)

long x,y; (x,y為長(zhǎng)整型變量)

unsigned p,q; (p,q為無符號(hào)整型變量)

在書寫變量說明時(shí),應(yīng)注意以下幾點(diǎn):

1.允許在一個(gè)類型說明符后,說明多個(gè)相同類型的變量。各變量名之間用逗號(hào)間隔。類型說明符與變量名之間至少用一個(gè)空格間隔。

2.最后一個(gè)變量名之后必須以“;”號(hào)結(jié)尾。

3.變量說明必須放在變量使用之前。一般放在函數(shù)體的開頭部分。

[Practice] //1int a,b;

short int c;

short d=100;

a=d-20;

b=a+d;

c=a+b+d;

d=d-a+c-b;'Vtable

a,2,0

b,2,0

c,2,0

d,2,100

of Vtable

'Vupdate

1,0;2,0

3,0

4,100

1,80

2,180

3,360

4,200

of Vupdate

of Practice

[Practice] //2int a=5;

int b=9;

long int c;

long d;

c=a+b-7;

d=a*b*c;

c=d*d*d;

a=c-d;'Vtable

a,2,5

b,2,9

c,4,0

d,4,0

of Vtable

'Vupdate

1,5

2,9

3,0

4,0

3,7

4,315

3,31255875

1,-5112

of Vupdate

of Practice

[Practice] //3int a=6,b=19;

unsigned int c;

int d;

c=a-b+7;

d=b*c;

a=b+c+d;

b=-a;'Vtable

a,2,6

b,2,19

c,2,0

d,2,0

of Vtable

'Vupdate

1,6;2,19

3,0

4,0

3,65530

4,-114

1,-101

2,101

of Vupdate

of Practice

void main(){

long x,y;

int a,b,c,d;

x=5;

y=6;

a=7;

b=8;

c=x+a;

d=y+b;

printf("c=x+a=%d,d=y+b=%d\n",c,d);

}

將main說明為返回void,即不返回任何類型的值

x,y被定義為long型

a,b,c,d被定義為int型

5-x

6-y

7-a

8-b

x+a-c

y+b-d

顯示程序運(yùn)行結(jié)果 of long x,y;

int a,b,c,d;

c=x+a;

d=y+b;

從程序中可以看到:x, y是長(zhǎng)整型變量,a, b是基本整型變量。它們之間允許進(jìn)行運(yùn)算,運(yùn)算結(jié)果為長(zhǎng)整型。但c,d被定義為基本整型,因此最后結(jié)果為基本整型。本例說明,不同類型的量可以參與運(yùn)算并相互賦值。其中的類型轉(zhuǎn)換是由編譯系統(tǒng)自動(dòng)完成的。有關(guān)類型轉(zhuǎn)換的規(guī)則將在以后介紹。

實(shí)型量

實(shí)型常量

實(shí)型也稱為浮點(diǎn)型。實(shí)型常量也稱為實(shí)數(shù)或者浮點(diǎn)數(shù)。在C語言中,實(shí)數(shù)只采用十進(jìn)制。它有二種形式: 十進(jìn)制數(shù)形式指數(shù)形式

1.十進(jìn)制數(shù)形式

由數(shù)碼0~ 9和小數(shù)點(diǎn)組成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均為合法的實(shí)數(shù)。

2.指數(shù)形式

由十進(jìn)制數(shù),加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號(hào))組成。其一般形式為a E n (a為十進(jìn)制數(shù),n為十進(jìn)制整數(shù))其值為 a*10,n 如: 2.1E5 (等于2.1*10,5), 3.7E-2 (等于3.7*10,)-2*) 0.5E7 (等于0.5*10,7), -2.8E-2 (等于-2.8*10,)-2*)以下不是合法的實(shí)數(shù) 345 (無小數(shù)點(diǎn)) E7 (階碼標(biāo)志E之前無數(shù)字) -5 (無階碼標(biāo)志) 53.-E3 (負(fù)號(hào)位置不對(duì)) 2.7E (無階碼)

標(biāo)準(zhǔn)C允許浮點(diǎn)數(shù)使用后綴。后綴為“f”或“F”即表示該數(shù)為浮點(diǎn)數(shù)。如356f和356.是等價(jià)的。例2.2說明了這種情況:

void main()

{

printf("%f\n%f\n",356.,356f);

}

void 指明main不返回任何值 利用printf顯示結(jié)果 結(jié)束

實(shí)型變量

實(shí)型變量分為兩類:?jiǎn)尉刃秃碗p精度型,

其類型說明符為float 單精度說明符,double 雙精度說明符。在Turbo C中單精度型占4個(gè)字節(jié)(32位)內(nèi)存空間,其數(shù)值范圍為3.4E-38~3.4E+38,只能提供七位有效數(shù)字。雙精度型占8 個(gè)字節(jié)(64位)內(nèi)存空間,其數(shù)值范圍為1.7E-308~1.7E+308,可提供16位有效數(shù)字。

實(shí)型變量說明的格式和書寫規(guī)則與整型相同。

例如: float x,y; (x,y為單精度實(shí)型量)

double a,b,c; (a,b,c為雙精度實(shí)型量)

實(shí)型常數(shù)不分單、雙精度,都按雙精度double型處理。

void main()

{

float a;

double b;

a=33333.33333;

b=33333.33333333333333;

printf("%f\n%f\n",a,b);

}

此程序說明float、double的不同

a ■■■■

b ■■■■■■■■

a---33333.33333

b---33333.33333333333;;

顯示程序結(jié)果

此程序說明float、double的不同

float a;

double b;

a=33333.33333;

b=33333.33333333333333; 從本例可以看出,由于a 是單精度浮點(diǎn)型,有效位數(shù)只有七位。而整數(shù)已占五位,故小數(shù)二位后之后均為無效數(shù)字。b 是雙精度型,有效位為十六位。但Turbo C 規(guī)定小數(shù)后最多保留六位,其余部分四舍五入。

[Practice] //floatint a=32;

float b;

double d;

b=12345678;

d=b*100;

d=d+a;

d=d+58.123456;'Vtable

a,2,32

b,4,0.0

d,8,0.0

of Vtable

'Vupdate

1,32

2,0

3,0

2,12345678.00000

3,1234567800

3,1234567832

3,1234567890.123456

of Vupdate

of Practice

[Practice] //1int a=543;

float b;

b=123.123962+a;

b=b-100;

a=b;'Vtable

a,2,543

b,4,0.0

of Vtable

'Vupdate

1,543

2,0.0

2,123.123962

2,23.123962

1,23

of Vupdate

of Practice

字符型量

字符型量包括字符常量和字符變量。

字符常量

字符常量是用單引號(hào)括起來的一個(gè)字符。例如'a','b','=','+','?'都是合法字符常量。在C語言中,字符常量有以下特點(diǎn):

1.字符常量只能用單引號(hào)括起來,不能用雙引號(hào)或其它括號(hào)。

2.字符常量只能是單個(gè)字符,不能是字符串。

3.字符可以是字符集中任意字符。但數(shù)字被定義為字符型之后就

不能參與數(shù)值運(yùn)算。如'5'和5 是不同的。'5'是字符常量,不能參與運(yùn)算。

轉(zhuǎn)義字符

轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線"\"開頭,后跟一個(gè)或幾個(gè)字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。例如,在前面各例題printf函數(shù)的格式串中用到的“\n”就是一個(gè)轉(zhuǎn)義字符,其意義是“回車換行”。轉(zhuǎn)義字符主要用來表示那些用一般字符不便于表示的控制代碼。

常用的轉(zhuǎn)義字符及其含義

轉(zhuǎn)義字符 轉(zhuǎn)義字符的意義

\n 回車換行

\t 橫向跳到下一制表位置

\v 豎向跳格

\b 退格

\r 回車

\f 走紙換頁

\\ 反斜線符"\"

\' 單引號(hào)符

\a 鳴鈴

\ddd 1~3位八進(jìn)制數(shù)所代表的字符

\xhh 1~2位十六進(jìn)制數(shù)所代表的字符

廣義地講,C語言字符集中的任何一個(gè)字符均可用轉(zhuǎn)義字符來表示。表2.2中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進(jìn)制和十六進(jìn)制的ASCII代碼。如\101表示字?quot;A" ,\102表示字母"B",\134表示反斜線,\XOA表示換行等。轉(zhuǎn)義字符的使用

void main()

{

int a,b,c;

a=5; b=6; c=7;

printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);

}

此程序練習(xí)轉(zhuǎn)義字符的使用

a、b、c為整數(shù) 5-a,6-b,7-c

調(diào)用printf顯示程序運(yùn)行結(jié)果

printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);

程序在第一列輸出a值5之后就是“\n”,故回車換行;接著又是“\t”,于是跳到下一制表位置(設(shè)制表位置間隔為8),再輸出b值6;空二格再輸出c 值7后又是"\n",因此再回車換行;再空二格之后又輸出a值5;再空三格又輸出b的值6;再次后"\t"跳到下一制表位置(與上一行的6 對(duì)齊),但下一轉(zhuǎn)義字符“\b”又使退回一格,故緊挨著6再輸出c值7。

字符變量

字符變量的取值是字符常量,即單個(gè)字符。字符變量的類型說明符是char。字符變量類型說明的格式和書寫規(guī)則都與整型變量相同。

例如:

char a,b; 每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間,因此只能存放一個(gè)字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。如x的

十進(jìn)制ASCII碼是120,y的十進(jìn)制ASCII碼是121。對(duì)字符變量a,b賦予'x'和'y'值: a='x';b='y';實(shí)際上是在a,b兩個(gè)單元內(nèi)存放120和121的二進(jìn)制代碼: a 0 1 1 1 1 0 0 0

b 0 1 1 1 1 0 0 1

所以也可以把它們看成是整型量。 C語言允許對(duì)整型變量賦以字符值,也允許對(duì)字符變量賦以整型值。在輸出時(shí), 允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。 整型量為二字節(jié)量,字符量為單字節(jié)量,當(dāng)整型量按字符型量處理時(shí), 只有低八位字節(jié)參與處理。

main()

{

char a,b;

a=120;

b=121;

printf("%c,%c\n%d,%d\n",a,b,a,b);

}

a ■ b ■

a -- 120

b --- 121

顯示程序結(jié)果

本程序中說明a,b為字符型,但在賦值語句中賦以整型值。從結(jié)果看,a,b值的輸出形式取決于printf函數(shù)格式串中的格式符,當(dāng)格式符為"c"時(shí),對(duì)應(yīng)輸出的變量值為字符,當(dāng)格式符為"d"時(shí),對(duì)應(yīng)輸出的變量值為整數(shù)。

void main()

{

char a,b;

a='x';

b='y';

a=a-32;

b=b-32;

printf("%c,%c\n%d,%d\n",a,b,a,b);

}

a,b被說明為字符變量并賦予字符值

把小寫字母換成大寫字母

以整型和字符型輸出

本例中,a,b被說明為字符變量并賦予字符值,C語言允許字符變量參與數(shù)值運(yùn)算,即用字符的ASCII 碼參與運(yùn)算。由于大小寫字母的ASCII 碼相差32,因此運(yùn)算后把小寫字母換成大寫字母。然后分別以整型和字符型輸出。

[Practice] //charint a=49;

char b;

char d;

b=a+10;

d=a+b;'Vtable

a,2,49

b,1,隨機(jī)

d,1,隨機(jī)

of Vtable

'Vupdate

1,49

2,隨機(jī)

3,隨機(jī)

2,';'

3,'l'

of Vupdate

of Practice

[Practice] //char c1,c2;

c1='a';c2='b';

c1=c1-32;c2=c2-32;'Vtable

c1,1,隨機(jī)

c2,1,隨機(jī)

of Vtable

'Vupdate

1,隨機(jī);2,隨機(jī)

1,'a';2,'b'

1,'A';2,'B'

of Vupdate

of Practice

字符串常量

字符串常量是由一對(duì)雙引號(hào)括起的字符序列。例如: "CHINA" ,"C program:" , "$12.5" 等都是合法的字符串常量。字符串常量和字符常量是不同的量。它們之間主要有以下區(qū)別:

1.字符常量由單引號(hào)括起來,字符串常量由雙引號(hào)括起來。

2.字符常量只能是單個(gè)字符,字符串常量則可以含一個(gè)或多個(gè)字符。

3.可以把一個(gè)字符常量賦予一個(gè)字符變量,但不能把一個(gè)字符串常量賦予一個(gè)字符變量。在C語言中沒有相應(yīng)的字符串變量。

這是與BASIC 語言不同的。但是可以用一個(gè)字符數(shù)組來存放一個(gè)字符串常量。在數(shù)組一章內(nèi)予以介紹。

4.字符常量占一個(gè)字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個(gè)字節(jié)中存放字符"\0"(ASCII碼為0)。這是字符串結(jié)束的標(biāo)志。例如,字符串 "C program"在內(nèi)存中所占的字節(jié)為:C program\0。字符常量'a'和字符串常量"a"雖然都只有一個(gè)字符,但在內(nèi)存中的情況是不同的。

'a'在內(nèi)存中占一個(gè)字節(jié),可表示為:a

"a"在內(nèi)存中占二個(gè)字節(jié),可表示為:a\0符號(hào)常量

符號(hào)常量

在C語言中,可以用一個(gè)標(biāo)識(shí)符來表示一個(gè)常量,稱之為符號(hào)常量。符號(hào)常量在使用之前必須先定義,其一般形式為:

#define 標(biāo)識(shí)符 常量

其中#define也是一條預(yù)處理命令(預(yù)處理命令都?quot;#"開頭),稱為宏定義命令(在第九章預(yù)處理程序中將進(jìn)一步介紹),其功能是把該標(biāo)識(shí)符定義為其后的常量值。一經(jīng)定義,以后在程序中所有出現(xiàn)該標(biāo)識(shí)符的地方均代之以該常量值。習(xí)慣上符號(hào)常量的標(biāo)識(shí)符用大寫字母,變量標(biāo)識(shí)符用小寫字母,以示區(qū)別。

#define PI 3.14159

void main()

{

float s,r;

r=5;

s=PI*r*r;

printf("s=%f\n",s);

}

由宏定義命令定義PI 為3.14159 s,r定義為實(shí)數(shù) 5-r PI*r*r-s

顯示程序結(jié)果 float s,r; r=5; s=PI*r*r; 本程序在主函數(shù)之前由宏定義命令定義PI 為3.14159,在程序中即以該值代替PI 。s=PI*r*r等效于s=3.14159*r*r。應(yīng)該注意的是,符號(hào)常量不是變量,它所代表的值在整個(gè)作用域內(nèi)不能再改變。也就是說,在程序中,不能再用賦值語句對(duì)它重新賦值。

在c語言中用什么函數(shù)判定一個(gè)變量的類型

在c語言中用沒有函數(shù)判定一個(gè)變量的類型,可以使用sizeof來判斷變量大小。

示例:

#include stdio.h

#include stdlib.h

int main(int argc,char **argv)? ? ? ? ?//主程序

{

//對(duì)C語言內(nèi)置類型的所占字節(jié)數(shù)的測(cè)試

printf("size of char is: %d\n",sizeof(char));? ? ? ?//字符型數(shù)據(jù)所占字節(jié)數(shù) 、

printf("size of short is: %d\n",sizeof(short));? ? ?//短整形數(shù)據(jù)所占字節(jié)數(shù)

printf("size of int is: %d\n",sizeof(int ));? ? ? ? //整形數(shù)據(jù)

printf("size of short int is: %d\n",sizeof(short int)); //短整形

printf("size of long int is: %d\n",sizeof(long int));? ? //長(zhǎng)整形數(shù)據(jù)

printf("size of float is: %d\n",sizeof(float));? ? ? ? ? //浮點(diǎn)型數(shù)據(jù)

printf("size of double is: %d\n",sizeof(double));? ? ? ? //雙精度數(shù)據(jù)

//對(duì)字符及字符串?dāng)?shù)組所占字節(jié)數(shù)的測(cè)量

char a[] ={'a','b','c','d','e'};

printf("size of a[] is: %d\n",sizeof(a));? ? ? ? ? ? ? ?//輸出數(shù)組a[]所占字節(jié)數(shù)

char b[]={"abcde"};? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化字符串b

printf("size of b[] is: %d\n",sizeof(b));? ? ? ? ? ? ? ?//數(shù)組b[]

char c[][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}};? //初始化二維字符型數(shù)組

printf("size of c[][] is: %d\n",sizeof(c));? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//二維數(shù)組c所占字節(jié)數(shù)

printf("size of c[0] is: %d\n",sizeof(c[0]));? ? ? ? ? ? ? ? ? ? ? ? ? ?//二維數(shù)組中的某行所占的字節(jié)數(shù),例如第0行

printf("size of c[0][0] is: %d\n",sizeof(c[0][0]));? ? ? ? ? ? ? ? ? ? ?//某行某個(gè)元素,例如第0行第0個(gè)元素

//對(duì)指針?biāo)甲止?jié)數(shù)的測(cè)量

char *p=0;

printf("size of *p is: %d\n",sizeof(p));? ? ? ? ? ? ? ? ? ? ? ?//字符型指針

system("pause");

return 0;

}

擴(kuò)展資料

使用sizeof()計(jì)算數(shù)組長(zhǎng)度

將sizeof用于 expr是并沒有計(jì)算expr的值。特別是在sizeof *p中,指針p可以是一個(gè)無效地址,因?yàn)椴恍枰獙?duì)p做解引用操作。

對(duì)char類型或值為char類型的表達(dá)式做sizeof操作結(jié)果為1。對(duì)引用類型做sizeof操作,將返回存放此引用類型對(duì)象所需的內(nèi)存空間大小。

對(duì)指針做sizeof操作,將返回存放指針?biāo)璧膬?nèi)存大小,注意,如果要獲取該指針指向?qū)ο蟮拇笮?,則必須對(duì)該指針進(jìn)行解引用。對(duì)數(shù)組做sizeof操作等效于對(duì)其元素做sizeof操作的結(jié)果乘上數(shù)組元素的個(gè)數(shù)。

因?yàn)閟izeof返回整個(gè)數(shù)組在內(nèi)存中的存儲(chǔ)長(zhǎng)度,所以用sizeof數(shù)組的結(jié)果初一sizeof其元素類型的結(jié)果,即可求出數(shù)組元素的個(gè)數(shù):int sz = sizeof(ia)/sizeof(*ia);

通常將8位的塊作為一個(gè)字節(jié),32位或4個(gè)字節(jié)作為一個(gè) “字”。一般的short為半個(gè)機(jī)器字長(zhǎng),int為一個(gè)機(jī)器字長(zhǎng)。

c語言中,函數(shù)類型有幾種?

一般包括字符庫函數(shù),數(shù)學(xué)函數(shù),目錄函數(shù),進(jìn)程函數(shù),診斷函數(shù),操作函數(shù)等。

字符庫函數(shù)所在函數(shù)庫為ctype.h;數(shù)學(xué)函數(shù)所在函數(shù)庫為math.h、stdio.h、string.h、float.h;目錄函數(shù)所在函數(shù)庫為dir.h、dos.h;進(jìn)程函數(shù)所在函數(shù)庫為stdlib.h、process.h。

診斷函數(shù)所在函數(shù)庫為assert.h、math.h;接口子程序所在函數(shù)庫為:dos.h、bios.h;操作函數(shù)所在函數(shù)庫為string.h、mem.h;時(shí)間日期函數(shù)函數(shù)庫為time.h、dos.h。

擴(kuò)展資料

C語言為一種程序設(shè)計(jì)的入門語言。由于C語言的語句中沒有提供直接計(jì)算sin或cos函數(shù)的語句,會(huì)造成編寫程序困難;但是函數(shù)庫提供了sin和cos函數(shù),可以拿來直接調(diào)用。顯示一段文字,我們?cè)贑語言中找不到顯示語句,只能使用庫函數(shù)printf。

C語言的庫函數(shù)并不是C語言本身的一部分,它是由編譯程序根據(jù)一般用戶的需要,編制并提供用戶使用的一組程序。C的庫函數(shù)極大地方便了用戶,同時(shí)也補(bǔ)充了C語言本身的不足。在編寫C語言程序時(shí),使用庫函數(shù),既可以提高程序的運(yùn)行效率,又可以提高編程的質(zhì)量。

參考資料來源:百度百科-C語言庫函數(shù)

參考資料來源:百度百科-C語言函數(shù)

C語言變量的定義與使用

變量的存儲(chǔ)類別決定了變量中的數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)位置。C語言中局部變量存放在動(dòng)態(tài)存儲(chǔ)區(qū),全局變量或者靜態(tài)變量存放在靜態(tài)存儲(chǔ)區(qū)。下面是關(guān)于C語言變量的定義與使用,歡迎參考!

如果要為單片機(jī)控制系統(tǒng)編寫出高質(zhì)量的C語言程序,合理的定義并使用變量是非常重要的。程序是用來處理數(shù)據(jù)的,而變量就是用來存儲(chǔ)數(shù)據(jù)的。每定義一個(gè)變量,編譯器就會(huì)在系統(tǒng)的RAM中分配一個(gè)物理存儲(chǔ)區(qū)域。在單片機(jī)控制系統(tǒng)中,RAM資源是非常有限的,作為單片機(jī)程序員,絕對(duì)不能隨意的定義變量,需要精打細(xì)算合理定義。為了實(shí)現(xiàn)這個(gè)目標(biāo),必須要對(duì)變量的多個(gè)特性有深刻的認(rèn)識(shí)。

變量特性:

第一、變量定義要選擇恰到好處的類型,變量的類型直接決定了它所存儲(chǔ)的數(shù)據(jù)取值范圍,這類似于我們生活中使用的各種容器,選擇合適的變量類型,不但能保證數(shù)據(jù)存儲(chǔ)安全,還能有效的節(jié)約系統(tǒng)資源;

第二、變量的作用范圍必須清楚,C語言最基本的功能單元是函數(shù),在函數(shù)內(nèi)部使用的變量是私有變量,只能在函數(shù)內(nèi)部使用。多個(gè)函數(shù)組成一個(gè)程序的功能模塊,并安置在某一個(gè)C文件中,在這些函數(shù)的頭部定義的變量是靜態(tài)變量(局部變量),這種類型的變量模塊內(nèi)部的函數(shù)都可以訪問。如果在模塊內(nèi)部聲明變量,并在該模塊的頭文件中導(dǎo)出,該類型變量就是全局變量,全局變量在整個(gè)工程中的所有函數(shù)都可以訪問;

第三、變量占用的RAM資源,私有變量是可以釋放的,靜態(tài)變量與全局變量是不可以釋放的。也就是說在程序運(yùn)行的整個(gè)過程中,私有變量占用資源可以供不同的函數(shù)重復(fù)利用,而靜態(tài)變量與全局變量是完全被占用不能重復(fù)利用的;

第四、變量可以存放常數(shù),但因?yàn)閱纹瑱C(jī)RAM資源有限,強(qiáng)烈建議不要用變量存放常量,而是在資源相對(duì)豐富的FlashROM中存放常量;

第五、局部變量與全局變量對(duì)于函數(shù)來說,訪問非常方便,但缺點(diǎn)顯而易見:訪問的函數(shù)越多,數(shù)據(jù)的安全性越低,一旦出現(xiàn)數(shù)據(jù)異常,很難排除問題。所以,請(qǐng)盡量減少局部變量與全局變量的使用;

第六、函數(shù)的型參個(gè)數(shù)盡量減少,這樣型參只會(huì)占用通用寄存器組來完成參數(shù)傳遞工作。如果參數(shù)過多,編譯器可能會(huì)被迫分配占用RAM資源,這樣不但參數(shù)傳遞效率變低,同時(shí)還會(huì)導(dǎo)致RAM資源浪費(fèi);

明確上述變量定義與使用特點(diǎn)后,在編寫程序的時(shí)候,一定要利用好這些特性并結(jié)合程序的特點(diǎn),靈活的使用各種類型、各種作用范圍的變量,使程序在最大限度上得到優(yōu)化,使系統(tǒng)性能提升至最優(yōu)的狀態(tài),才是我們嵌入式開發(fā)者的終極目標(biāo)!

拓展:C語言入門學(xué)習(xí)

什么人需要學(xué)習(xí)C語言?

從51JOB的統(tǒng)計(jì)數(shù)據(jù)來看,選擇C語言人才的企業(yè)多數(shù)以電子工程師、嵌入式工程師、硬件工程師、IOS工程師等為主,學(xué)歷本科以上相關(guān)專業(yè),三年以上工作經(jīng)驗(yàn),且外語水平要求至少四級(jí)以上。既然C語言學(xué)習(xí)者的就業(yè)門檻那么高,為什么還有很多人執(zhí)著的去學(xué)習(xí)C語言呢?總結(jié)而言,無外乎以下幾點(diǎn)原由:

1)C語言不是面向?qū)ο笳Z言。

因?yàn)檫@一點(diǎn),任何學(xué)習(xí)C語言的人必須學(xué)會(huì)用函數(shù)思考問題。當(dāng)你真正的去學(xué)習(xí)一門面向?qū)ο笳Z言時(shí),就會(huì)有C語言的函數(shù)學(xué)習(xí)基礎(chǔ)去對(duì)比。這會(huì)使學(xué)習(xí)面向?qū)ο缶幊谈菀桌斫夂透袠啡ぁ?/p>

2)用C編程就像進(jìn)行智力體操。

你要顧及到每一件事情,而這在很多其他語言中他會(huì)為你處理。你要管理指針,內(nèi)存分配,和內(nèi)存回收。你要明白如何處理串,還有動(dòng)態(tài)數(shù)據(jù)。在其他語言中,所有這些對(duì)你來說是隱藏的。你不知道他們?nèi)绾芜\(yùn)行,更不用說改變他們的運(yùn)行方式了。你得到了使用的便利,失卻了對(duì)程序的控制和速度。很多情況下,這是筆值得的買賣。其他的情況下就不是這樣了。

3)不同情況下你會(huì)使用不同的編程語言。

某些情況下要求使用Lisp,其他的要Java,還有別的要C++。但是C是你堅(jiān)實(shí)的基礎(chǔ)。你可能不會(huì)使用它做一些項(xiàng)目,但是它會(huì)幫助提高你的能力,熟練的用其他語言編程。

4)除了匯編語言之外,C代碼生成的程序比其他任何語言生成的程序來得更小和運(yùn)行更快。

那么為什么不學(xué)匯編語言呢?匯編是一門學(xué)了很有用的.語言,但是它沒有C那樣的可移植性,并且其他流行的語言比如JAVA的語法是基于C的,而不是匯編。你仍然應(yīng)該學(xué)匯編,但它并不會(huì)證明它會(huì)像學(xué)C那樣有用。

5)如果你想要寫一個(gè)視頻游戲引擎或操作系統(tǒng),你會(huì)需要C。

你不能使用C#, Java, 或 Basic來完成這些編程任務(wù)。

C語言的發(fā)展史:

C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言,它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。

我適合學(xué)習(xí)C語言嗎?

首先我們要認(rèn)清一個(gè)事實(shí):C語言工作者只是眾多從事軟件開發(fā)者中的一小部分,在深圳這樣一個(gè)IT企業(yè)云集的大城市,使用其它語言從事軟件開發(fā)的工作者多如牛毛,薪資待遇不比從事C語言開發(fā)的人低,當(dāng)編程愛好者在選擇第一個(gè)編程語言時(shí),C語言不一定是首先。我適合學(xué)習(xí)C語言嗎?解決這個(gè)問題,先回答以下幾個(gè)問題:

1)你學(xué)習(xí)C語言的目的是什么?如果是想從事這方面的工作,那么請(qǐng)義無反顧的堅(jiān)持下去,推薦你在《微機(jī)原理》、《計(jì)算機(jī)組成原理》和《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》三本書中選一本配合《C語言程序設(shè)計(jì)》來看,這樣可以融匯貫通,讓你對(duì)編程有更深入更系統(tǒng)化的理解。而這種理解對(duì)計(jì)算機(jī)類學(xué)科的學(xué)習(xí)來說很重要。

2)您具備學(xué)習(xí)C語言的條件嗎?由于入職C語言編程的企業(yè)對(duì)入職者的要求比較高,在沒有編程工作經(jīng)驗(yàn)前提下多數(shù)想通過自學(xué)進(jìn)入類似企業(yè)的人幾乎為零,包括很多計(jì)算機(jī)專業(yè)畢業(yè)的大、中專畢業(yè)生在校期間都會(huì)學(xué)到C語言,畢業(yè)出來后依然云里霧里。C語言的開發(fā),需要在實(shí)際工作中才能快速掌握。同時(shí),英語(從事C語言開發(fā)需要經(jīng)常查閱英文資料,尤其是單片機(jī)領(lǐng)域)、學(xué)歷、數(shù)學(xué)算法、極強(qiáng)的邏輯思維能力等等也是讓多數(shù)人望而卻步的門檻。

當(dāng)前名稱:c語言定義函數(shù)變量類型,c語言定義變量類型有哪些
文章出自:http://muchs.cn/article14/hcgjge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、商城網(wǎng)站網(wǎng)站導(dǎo)航、自適應(yīng)網(wǎng)站ChatGPT、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)