重拾C,一天一點點_12

連續兩天沒寫了,今天繼續!算法

sizeof 對象 或 sizeof (類型名)數組

返回一個整型值,等於指定對象或類型佔用的存儲空間字節數。(返回值是無符號整型值,其類型爲size_t,在頭文件<stddef.h>中定義)。對象能夠是變量、數組或結構;類型能夠是基本類型int、double等,也能夠是派生類型,如結構類型或指針類型。函數

類型定義:提升程序的可移植性。學習

  typedef int Length;  //將Length定義爲與int具備同等意義的名字spa

  Length len;命令行

聯合:在不一樣時刻保存不一樣類型和長度的對象的變量,編譯器負責跟蹤對象的長度和對齊要求。指針

1 union u_tag{
2     int ival;
3     float fval;
4     char *sval;
5 } u;

訪問聯合中的成員:調試

  聯合名.成員   //u.ivalcode

或 聯合名->成員  //u->ival 對象

聯合只能用第一個成員類型的值進行初始化,上例聯合u只能做整數值進行初始化。

位字段

將多個對象保存在一個機器字中:使用相似於編譯器符號表的單個二進制位標誌集合。

1 #define KEYWORD        01
2 #define EXTERNAL     02
3 #define    STATIC         04
4 或enum{KEYWORD = 01, EXTERNAL = 02, STATIC = 04};

位字段(bit-field)簡稱字符,是「字」中相鄰位的集合,「字」(word)是單個的存儲單元,與具體的實現有關。

 1 #include <stdio.h> 
 2 struct{
 3     unsigned int is_keyword : 1;    //冒號後的數字表示字段的寬度(用二進制位表示) 
 4     unsigned int is_extern  : 1;
 5     unsigned int is_static  : 1;
 6 } flags;
 7 main(){
 8     printf("%d\n", flags.is_keyword);    //0
 9     flags.is_keyword = 1;
10     printf("%d\n", flags.is_keyword);    //1
11 }

輸入與輸出

int getchar(void)  //返回下一個輸入字符,到文件結尾,返回EOF。符號常量EOF在頭文件<stdio.h>中定義,其值通常爲-1,但在程序中應該使用EOF來判斷文件是否結束,這樣能保證程序同EOF的特定值無關。

prog < infile  //從輸入文件(非鍵盤)中讀取字符

int putchar(int)  //輸出字符,如發生錯誤,則返回EOF

prog > outfile  //將標準輸出設備重定向到文件中,如系統支持管道,命令行可寫成:prog | outfile

printf     //格式化輸出,調試時用的最多了

sprintf    //將輸出結果存在到String中

scanf    //格式化輸入  

1 #include <stdio.h> 
2 main(){
3     double sum, v;
4     sum = 0;
5     while(scanf("%lf", &v) == 1){
6         printf("\t%.2f\n", sum+=v);
7     }
8     return 0;
9 }

標準庫

 1 <stdio.h>  輸入與輸入
 2 <ctype.h>  字符類別檢測
 3 <string.h>  字符串
 4 <math.h>  數學
 5 <stdlib.h>  一些實用函數
 6 <assert.h>  診斷
 7 <stdarg.h>  可變參數表
 8 <setjmp.h>  非局部跳轉
 9 <signal>    信號
10 <time.h>    日期、時間

學到最後,每每有點敷衍了事了。

就這樣一本書,基本翻完了。回想本身翻過的東西,基本上已忘記了。

基礎就先打到這,接下來是算法的學習,學以至用!

  

原文做者:lltong,博客園地址:http://www.cnblogs.com/lltong/

相關文章
相關標籤/搜索