C語言拾遺筆記01
阿新 • • 發佈:2018-08-04
指定字段 ons char etc 地址 所有 空格 打印 con 輸入和輸出
printf()打印的是字符串而不是整數
#define _CRT_SECURE_NO_WARNINGS消除安全周期編譯的影響
%d %o %x 分別表示以十進制 八進制 十六進制顯示數字
%hd %ho %hx short 類型整數
C語言規定long 類型至少占32位
\b退格
sizeof 使用括號與否取決於運算對象是類型還是特定量,當是類型時括號必不可少,當是特定值時可有可無;
%10d 表示輸出結果有是個空格寬度,默認結果位於字段的右端
%-10d 輸出結果位於字段的左端;
printf()函數有返回值,返回打印字符串的長度,如果輸出有誤則返回一個負值;
scanf()根據%d 每次讀取一個數字字符 會跳過空白字符 當讀取到非數字字符時,它便認為讀到了整數末尾;
scanf()根據%c 只讀取第一個字符且該字符可以是空格;
%s把輸入解釋成字符串。從第一個非空白字符串開始,到下一個空白字符之前的所有字符都是輸入;
scanf()函數返回成功讀取的項數;如果沒有讀取任何項,且需要讀取一個數字而用戶卻輸入一個非數值字符串,scanf便返回0;
printf和scanf的*修飾符
printf():如果不想預先指定字段寬度,希望通過程序來指定,則可以用*修飾符代替字段寬度。但還是要用一個參數告訴函數,字段卷度應該是多少;
scanf():把*放在%和轉換字符之間時,會使scanf跳過相應的輸出項;在使用scanf格式化輸入時不能把\n加在字符串末尾,否則會需要多輸入一個數據才會結束輸入
不要自作聰明
如果一個變量出現在一個函數的多個參數中,不要對該變量使用遞增或遞減運算符
如果一個變量多次出現在一個表達式中,不要對該變量使用遞增或遞減操作符;
const定義常量,具有不可變性;
const定義常量指針 ,指針指向的內容不能改變,但可以指向其他地址int const *p; 或const int *p;這兩種寫法是一樣的,表示p指向的內容是常量
1、常量指針說的是不能通過這個指針改變變量的值,但是還是可以通過其他的引用來改變變量的值的。
2、常量指針指向的值不能改變,但是這並不是意味著指針本身不能改變,常量指針可以指向其他的地址。
int *const p;指針常量,指針本身是個常量,不能在指向其他的地址,可以通過指針改變其內容 int *const p; 表示指針p是個常量,它本身不可改變。需要註意的是,指針本身不可變,但指向的對象可變。
指向常量的指針常量,const int *const p; 表示指針本身不可變,也不能通過指針修改所指向地址的內容。需要註意的是,依然可以通過其他引用修改該指針指向地址的內容。
如上圖所示 常量指針x只能改變其指向地址而不能通過指針改變其值,而指針常量y則相反;只能改變值,而不能改變指向;
for循環的第一個語句不一定是給變量賦初值,也可以使用printf語句,在執行循環的其他部分之前,只對第1個表達式求值一次或執行一次。
根據C語言標準 case後的常量不能為浮點數
getchar()和putchar()用法:
getchar()每次只讀取處理一個字符
putchar()將讀取到的字符打印輸出
C語言中自定義一個函數之前需在程序頭部聲明函數,聲明時形式參數類型要給出
C語言拾遺筆記01