關於C語言的學習,主要分為語言、算法、數據結構、系統調用、設計幾個大方面。
今天想和大家說的是 轉義字符 和 常量 的一些簡單知識
轉義字符,說白了就是"/"+其他字符。基本的轉義在這裡就不一一介紹了,每一本資料上 應該都有。我現在想說一些容易出錯的。
1、引號的輸出
printf("\"");或者printf("%c",'"');
單斜線的輸出
printf("\\");
2、如說我輸出一串的路徑的話呢?像這樣
printf("C:\test\add\11-25\test.c");
那麼會輸出什麼呢?很明顯這樣是輸不出想要的路徑的,輸出結果應該是
C: estdd -25 est.c(中間都是隔著一個tab的位置)
為了輸出想要的結果,這裡就要用到轉義,原來所有的單斜線都改為雙斜線,
printf("C:\\test\\add\\11-25\\test.c");
3、針對問題二,多問一個問題,看如下程序:
int a;
a=strlen("C:\test\add\11-25\test.c");
printf("%d",a);
它的輸出結果是多少呢?不妨自己猜一下,然後試一下。
所有的字符轉義後不管是什麼,都只占一個位。
關於常量,常見的常量有字符型、整型、浮點型、還有枚舉(enum),前幾種類型不用做解釋,關於枚舉還是想多啰嗦幾句的。
1、首先舉一個簡單枚舉的例子(所有名稱都是自己隨意起的):
enum OS
{
WIN,
LINUS,
UNIX
};
通常情況下,我們管大括號內的不叫成員,叫他可能取值,均為常量,可以給它賦值,在不賦值的情況下,默認從上到下0,1,2...,如果在上面的程序後面加上一句
printf("%d\t%d\t%d\t",WIN,LINUS,UNIX);
輸出結果為 0 1 2
若僅給中間某一個數賦值,則下一個數在該數的基礎上加1,具體情況大家可以自己調試一遍。學習C的過程就是不斷敲代碼的過程。
2、說到這裡,另外再提一個關鍵字“const”
const修飾的數據類型是指常類型,常類型的變量或對象的值是不能被更新的。比較一下下面兩句:
int n=10; //n為變量
const int n=10; //變量轉換為常量,後期是不可以對n值進行修改的。
像這樣:
const int n=10;
n=20;
程序就會報錯,但是真的不可以改掉n的值了嗎?在C語言中,未必。
指針,一個幾乎萬能的工具。看下面程序:
const int n=10;
int *p=(int *)&n; //注意將n的地址強制轉化為指針,否則也會報錯
*p=20;
printf("%d",n);
這樣程序的輸出結果就變成了20。
3、數組
首先看一個程序:
int main()
{
int n=10;
int fun[n];
}
相信大家很容易看出程序是有問題的,在C語言中,數組的寬度必須是常量,那如果把第三行程序前面加上const,程序能不能正確編譯呢?
大家可以試試。
注:數組空間是在編譯前就開辟好了的。