【正文】
=== THIS IS A COMMENT ====================== */// This is a ment.常用數(shù)據(jù)類型C Pascalshort shortintint integerlong longintlong long int64unsigned short byteunsigned int wordunsigned long dwordunsigned long long qwordfloat realdouble doublechar char定義常量為了告訴編譯器某個變量不會改變,你可以在變量定義前加一個const。如果語句塊里只有一條語句,語句塊的標(biāo)識可以省略。b)。printf(%d, a+b)。這就好像Pascal 代碼:for i:=1 to n dobeginwriteln(39。例如,下面的語句定義了一個常數(shù):const int maxn=2000。你可以在程序中任意一個地方定義一個新的變量。標(biāo)注。39。039。char ch = c 39。char c。這段代碼中,a 最終被賦值為122,b 得到的值是20,而c 的值則為字符39。常用的標(biāo)識格式為%[x][.y](c|d|f|e),其中x表示輸出占的寬度,y 表示保留位數(shù);c,d,e,f 四個字母表示輸出類型,你需要選擇一個。printf ( 2 * a = %.5d\n , 2 * a )。printf ( a / b = %f\n, a / b )。printf ( c = %c\n, c )。如果某個函數(shù)不帶任何參數(shù),參數(shù)表一般留空(也可以用一個void 代替)。return sum/3。具體方法是把需要提前引用的函數(shù)的第一行復(fù)制一份提到前面去。}double average (double a , double b , double c){double sum=a+b+c。這些函數(shù)里必須有一個名為main 的函數(shù),它返回的值是一個int 類型,代表程序的退出代碼(0=正常退出)。return 0。}第13頁共41 頁C 語言中也有else if 和else 的用法,但和Pascal 不同的是else 的前一條語句末要保留分號。else if ( a==b || b==c || a==c )printf(Isosceles Triangle)。inta。if(a) printf(a is 2\n)。下面三句話將輸出數(shù)字1,這是因?yàn)開Bool 類型把所有非0 數(shù)都當(dāng)做是1。下面是兩個完整的程序。else return false。以下所有寫法都是正確的。 i=10。for (i=1。 n%d==0。a = b。intn=2。break。例如,下面的代碼將產(chǎn)生死循環(huán),并輸出滿屏幕的求愛信息。下面幾種方式可以在定義數(shù)組的同時進(jìn)行初始化:long value[10] = { 0, 8, 2, 0, 3 } 。程序中使用數(shù)組的方法和Pascal 一樣。i=i+1){if (isPrime[i]){printf(%d ,i)。for ( i=0。定義一個char a[20],就相當(dāng)于定義了一個長度不超過20 的字符串。for (i=0。程序的輸出為:109 97 116 114 105 120 54 55 46 99 111 109 0 0 0 0 0 0 0 0t== 或+ 等運(yùn)算符對字符串無效。char blogTitle[100]=Matrix67: My Blog 50% Informatics, 50% \Mathematics, and 50% Imagination。例如,我們經(jīng)常需要定義方向常量:const int dir[4][2] = { {1,0},{0,1},{1,0},{0,1} }。第21頁共41 頁long function_3( int m, int n, long a[][] )。 i=i+1 ){for ( j=1。}ans = ans + (1i%2*2)*a[0][i]*determinant(n1, sub)。short month,day。 = + 12。struct date myBirthday = { .year=1988, .month=5, .day=16 }。和本文無關(guān)的問題:有人知道為什么我從1583 年開始算么?int y,m。這樣,pointer 就是一個指針,它指向的是一個int 類型的數(shù)據(jù)。inta = 520。當(dāng)執(zhí)行了p=amp。printf( %d , sizeof(a) )。void *realloc( pointer, size )。Pascal 中的new 語句可以用前兩個函數(shù)代替,free 語句則相當(dāng)于Pascal 中的dispose。struct node *next。int i。}struct node *p = head。}intmain(){int a = 520, b = 1314。}intmain(){swap( a , b )。printf( %d %d, a, b )。b)。這是寫此類函數(shù)通常所用的方法。printf(%d\n, a == amp。因此,下面的兩個代碼是完全等價的:inti, a[100]。下面的程序輸出0 1 2 3 4 0。init( a, b )。再加上realloc 函數(shù)后,你就可以實(shí)現(xiàn)真正意義上的動態(tài)數(shù)組(長度可變)。 i=i+1 ) printf(%d,a[i])。return 0。scanf( %d%d , amp。b )。輸入:20:1902則h 為20,m 為19,s 沒有獲得新的值(匹配失敗)。}很多地方都可能用到條件運(yùn)算符。下面的代碼輸出0 1 1 1。 b a and ba | b a or ba ^ b a xor ba b a shl ba b a shr b第31頁共41 頁簡寫含義a += b a = a + ba = b a = a ba *= b a = a * ba /= b a = a / ba %= b a = a % ba amp。char *gets(str) 把這一行輸入數(shù)據(jù)存入字符串str 并返回該字符串,如果已無輸入或出錯則返回NULLint puts(str) 輸出字符串并自動輸出一個換行符,如果出錯則返回EOF。m, amp。打開一個文件使用fopen 函數(shù),該函數(shù)的參數(shù)為兩個字符串。a, amp。C 語言中也有類似的定義可以直接使用。printf( %d\n, strlen(st) )。}輸出為:121i 5第36頁共41 頁內(nèi)存操作函數(shù)下面的一些函數(shù)主要用于字符串操作, 。例如動態(tài)規(guī)劃前初始化f 數(shù)組:long f[1000][1000]。}int main(){long n=1000, i, a[n]。觀察下面的程序代碼:include include int main(){int n。這顯然比用if 語句排除異常錯誤更好一些。printf(NAME_OF_MY_POTENTIAL_GF)。n)。}return 0。例如,這段代碼就極具個性,一個光棍的形象躍然于屏幕上。 i=5。對64 位整型的處理和Free Pascal 一樣,對64 位整數(shù)類型的處理總是比較麻煩。a = llabs(a)。這一系列的文章略過了大量的概念講解、示例代碼和習(xí)題,你可以自己在網(wǎng)上閱讀一些C 語言程序作為補(bǔ)充。下一步我計劃寫C 與C++的區(qū)別,對象和類的介紹以及C++的新特性。printf(%I64d,a)。其次,C 語言中有些函數(shù)是要區(qū)分?jǐn)?shù)據(jù)類型的,你需要根據(jù)數(shù)據(jù)類型選用恰當(dāng)?shù)暮瘮?shù)。return 0。static 聲明在函數(shù)中的變量聲明前加一個static 可以使這個變量具有“記憶性”。amp。 in。如果哪一天ZPR 不要我了,我就可以非常方便地讓整個程序適用于另一個MM。第38頁共41 頁C 語言速成手冊(六)其它問題、后記預(yù)處理指令以一個井號開頭的行都叫做預(yù)處理指令。n)。 in。 提供的其它函數(shù)函數(shù)用途int abs(n) 取絕對值,適用于intlong labs(n) 取絕對值,適用于longlong long llabs(n) 取絕對值,適用于long longdouble atof(str) 把字符串str 轉(zhuǎn)化為數(shù)字,返回double 類型int atoi(str) 把字符串str 轉(zhuǎn)化為數(shù)字,返回int 類型long atol(str) 把字符串str 轉(zhuǎn)化為數(shù)字,返回long 類型long long atoll(str) 把字符串str 轉(zhuǎn)化為數(shù)字,返回long long 類型void exit(n) 退出程序,返回的錯誤代碼為n(0=正常),相當(dāng)于Pascal 的haltint rand() 產(chǎn)生一個隨機(jī)數(shù), 中指定(通常最小為0,最大為int 的上限)void srand(n) 設(shè)置隨機(jī)數(shù)發(fā)生器的種子為nvoidqsort(arr,n,size,fn)快排,四個參數(shù)分別為數(shù)組,長度,類型大小,比較函數(shù)。函數(shù)用途int memcmp (m1, m2, n) 比較m1 和m2 的頭n 個字節(jié),相同返回0,m1 小返回負(fù)數(shù),m2 小返回正數(shù)void *memmove (m1, m2, n) 把m2 的前n 個字節(jié)復(fù)制到m1 的位置,相當(dāng)于Pascal 中的movevoid *memset (m1, c, n) 把m1 的前n 個字節(jié)全部設(shè)為c,相當(dāng)于Pascal 中的fillchar下面這段代碼的結(jié)果是把st 字符串變成了Matrix67, I love UUUUUUUUUUUU...。printf( %c\n, *strchr(st,39。定義表示CHAR_MAX char 類型大小上限CHAR_MIN char 類型大小下限SHRT_MAX short 類型的大小上限SHRT_MIN short 類型的大小下限USHRT_MAX unsigned short 類型的大小上限INT_MAX int 類型的大小上限INT_MIN int 類型的大小下限UINT_MAX unsigned int 類型的大小上限LONG_MAX long 類型的大小上限LONG_MIN long 類型的大小下限ULONG_MAX unsigned long 類型的大小上限LLONG_MAX long long 類型的大小上限LLONG_MIN long long 類型的大小下限ULLONG_MAX unsigned long long 類型的大小上限第34頁共41 頁常用數(shù)學(xué)函數(shù)使用下面的函數(shù)需要在程序代碼前加上include 。fclose(in)。函數(shù)返回一個文件指針作為此文件的標(biāo)識供以后使用。printf(Hour:%d Minute:%d Second:%d\n, h, m, s)。你需要把目標(biāo)字符數(shù)組作為函數(shù)的第一個參數(shù)。 ba |= b a = a | ba ^= b a = a ^ ba = b a = a ba = b a = a b各種標(biāo)準(zhǔn)輸入輸出函數(shù) 提供的。printf(%d ,a++)。自加、自減a=a+1 可以寫成a++或++a,a=a1 可以寫成a或a 。scanf( My favourite website is%s , st )。===========性感的分割線===========代碼三:inth, m, s。b )。標(biāo)準(zhǔn)輸入之所以現(xiàn)在才來說讀入操作,是因?yàn)樽x入函數(shù)需要用到指針知識,否則解釋不清楚。for ( i=5。a = calloc(sizeof(int),5)。 i5。include void init( int a[5], int b ){int i。 i100。printf(%p\n, amp。指針與數(shù)組數(shù)組由