C語言基礎知識備忘

2021-08-02 21:38:22 字數 3607 閱讀 7837

整形常量的表示形式

整型常量的表示形式

特點舉例

十進位制0-9的數字序列組成,數字前可帶正負號

256,-128,0,+7

八進位制以0開頭,後跟0-7的數字序列組成,0前可帶正負號

021,-017

十六進製制

0x開頭,後跟0-9,a-f的數字序列組成

0x12,-0x1f

整型常量的型別指數形式

0.345e-5=0.00000345

實型常量的型別轉義字元

字元含義

\n換行(new line)

\r回車(不換行)(carriage return)

\0空字元,代表ascii碼值為0的字元

\t水平製表(horizontal tabulation)

\b退格(backspace)

\"雙引號(double quotation mark)

\'單引號(single quotation mark)

\\反斜線(backslash)

\?問號

*全域性變數定義時未賦初值則初始化為0

char ch='a';

printf("%c,%d\n",ch,ch);

-->a,97

函式名

功能sqrt(x)

計算平方根

fabs(x)

計算絕對值

log(x)

計算lnx的值

log10(x)

計算lgx的值

exp(x)

計算e^x的值

pow(x,y)

計算x^y的值

格式轉換符

用法%d

帶符號的十進位制整數

%u無符號的十進位制整數

%o無符號的八進位制整數,不輸出前導符0

%x無符號的十六進製制整數(小寫),不輸出前導符0x

%c輸出乙個字元

%s輸出字串

%%百分號%

* 格式修飾符

格式修飾符

用法英文本母l輸出long型資料

最小域寬m指定輸出項輸出時所佔的列數。若m為正整數,向右靠齊。若m為負整數,向左靠齊。

顯示精度.n

對於浮點數,指定輸出的浮點數的小數字數。對於字串,指定輸出擷取的子串字元個數

格式轉換符

用法%d

十進位制整數

%o八進位制整數

%x十六進製制整數

%c字元,空白字元(空格、回車、製表符)也作為有效輸入

%s字串,遇到第乙個空白字元輸入結束

%f實數

%%百分號

* 格式修飾符

格式修飾符

用法忽略輸入修飾符*表示對應的輸入項在讀入後不賦給相應的變數

域寬m指定輸入的資料的寬度,按此寬度擷取所需資料

int matrix[1][2]=;

等價於int matrix[1][2]=;

void sort(int arr[10]);

等價於void sort(int arr);

void func(int arr[4][3]);

void func(int arr[3]);

都合法,但

void func(int arr);

非法

字元陣列與字串關係

字串賦值給字元陣列

1.用char資料對陣列初始化

char str[6]=;

此種方式賦初值,必須人為的加入'\0'

2.用字串常量對陣列初始化

char str="china";

* 對於二維字元陣列存放多個字串,第二維的長度不能省略,應該按最長的字串長度設定。

char weekday[10]=;

字元陣列的輸入/輸出

1.以c格式字元乙個個單獨輸入/輸出

for(i=0;i<10;i++)

for(i=0;str[i]!='\0';i++)

2.以s格式作為字串整體輸入/輸出
scanf("%s",str);

printf("%s",str);

【注】

spaceentertab作為以%s格式輸入字串的分隔符,因而不能被讀入,遇到這些字元即結束輸入。

3.用gets()或puts()輸出/輸出

字串處理函式直接定址:按變數名來訪問變數內容的訪問方式

間接定址:通過指標變數間接訪問指向的變數的訪問方式

a=*p;

p=p+1;

a=*p;

*p=*p+1;

字元指標與字元陣列的區別

1. 初始化含義不同

2. 賦值方法和含義不同。

char *ptr;

ptr="china"; //正確

字串中的乙個字元的位址賦給ptr,相當於用位址值對ptr賦初值。

* 字元陣列賦值

char str[10];

str="china";//錯誤

以上方法是錯誤的,陣列名是陣列元素的首位址,是乙個常量值,無法被改變。

將乙個字串賦值給字元陣列必須使用strcpy

strcpy(str,"china");

3. 輸入方式不同

char str[10];

scanf("%s",str);

char *ptr,str[10];

ptr=str;

scanf("%s",ptr);

4.型別不同

* 字元陣列的陣列名是乙個位址常量,值不能改變

* 字元指標是乙個變數,值可以被改變

【注】

由於陣列名作函式形參與指標變數作函式形參的等價性。因此,在用陣列名作函式形參的函式體內部可以對該宣告為形參的陣列名進行和指標一樣的自增、自減運算。除此之外的陣列名都是乙個指標常量,不能進行自增、自減的運算。

C語言之基礎知識 防備忘

序號 知識點 整型 1c語言的識別符號,只能由字母 數字和下劃線組成,且第乙個字元必須為字母或者下劃線 2大寫字母和小寫字母認為是兩個不同的字元 3計算機記憶體中,整數是以補碼的形式存在的 4正整數 原碼 反碼 補碼相同 原碼即為十進位制轉為二進位制 5負整數 原碼,符號位為1。反碼,符號位為1,其...

C語言基礎知識

1 的問題。int i 1 int j 2 int k i j printf d k 輸出k為3。編譯原理有關編譯器在詞法解析的時候,對於運算子,總是查詢最大的匹配也就是說,i j,編譯器在找到 的時候,它不立即理解為 而是繼續下乙個字元,下乙個字元仍然是 可以組成 再往下的話便是 不成立了。所以i...

C語言基礎知識

一 位元組對齊 位元組對齊的原因,是機器在訪問記憶體中儲存的資料的高效性。通常機器是機器位數為自然邊界來訪問記憶體的,如果乙個4位元組整形數,所在的記憶體不在虛擬記憶體的自然邊界。則cpu需要讀多於一次的資料,這樣就降低了效率。所以,簡單地說,就是保證cpu指令在訪問資料的時候,能一次讀取,而不需要...