1. 間接(indirection)
1.1 變量和間接(使用變量來代替一些數字)
1.2 使用文件名的間接
const 表示一個變量不容許被改變
const int nValue; //nValue是const
const char *pContent; //*pContent是const, pContent可變
const char* const pContent; //pContent和*pContent都是const
strlen(String value); // 返回value字符串的長度
以下面一個例子,可由非專業人員書寫文件,這就是間接 ,可是路徑爲決定路徑,不是太理想
FILE *worldFile = fopen("/tmp/words.txt","r"); // 打開文件並讀取文件內容,其中tmp爲Unix臨時目錄
char word[100];
while(fgets(word , 100 , wordFile)){ // fgets()從文件中讀取一行文本並將其放到word中
word[strlen[word]-1] = '\0'; // fgets()調用會保留分開每一行的換行符,咱們不須要,若是留下他,會增長一個字符,因此改成\0
NSLog(@"%s is %d characters long",word,strlen(word)); // 打印信息
}
fclose(wordFile); // 關閉文件數組
indirection(間接) --> 不在代碼中直接使用某個值,而是使用指向該值的指針
變量與間接 --> for(int i = 1 ;i< 5 ;i++) 是錯誤的 ,必須在for循環以前就聲明變量 int i;for(i =1;i<5;i++)
const關鍵字:表示聲明一個常量,其值不能夠改變 (C中的關鍵詞)
使用文件名的間接 --> %d 格式說明符取strlen()函數的整數值,此函數計算字符串的長度,並輸出單次自己及其長度 %s 由於是C字符串數組
FILE *wordFile = fopen("/tmp/words.txt","r");
char word[100];
while(fgets(word,100,wordFile)){
word[strlen(word)-1] = '\0';
NSLog(@"%s is %d characters long",word,strlen(word));
}
fclose(wordFile);
首先fopen()打開words.txt 文件並讀取文件內容,而後,fgets()從文件中讀取一行並將其放到word中。
fgets()調用會保留分開每一行的換行符,可是咱們不須要,由於留下他,換行符會被記爲單詞中的一個字符,爲了解決這個問題,咱們將換行符替換爲0,表示字符串的結束,
最後使用NSLog()輸出單次以及長度
typedef
typedef是C中的關鍵字,它的主要做用是給一個數據類型定義一個新的名稱,這些類型報告內部數據類型,好比int,char 還有自定義類型struct,enum等。
typedef通常有兩個做用:(1) 給某種類型頂一個定義比較容易記的名字,至關於別名;(2)簡化較爲複雜的類型聲明。
方括號的其餘意義:
它們用於通知某個對象該作什麼。在方括號中,第一項是對象,其他部分是你須要對象執行的操做。函數
輸出一個字符
putchar(c); // put character(給字符的縮寫)
輸入一個字符
getchar(); // 只能接收一個字符,若是輸入多個字符,就要使用多個getchar() 函數
指針