該文主要是記錄我學習中遇到的一些重點、易出問題的內容
教材p16.17
先從一個簡單的例子開始吧
#include <stdio.h> //編譯預處理命令
int main() //程序的主函數
{printf("To C"); //輸出語句return 0; //返回語句
}
#include <stdio.h>是編譯預處理命令,功能是包含標準輸入輸出頭文件? 預處理命令必須以#開頭
int main()是主函數的函數首部,每個c程序有且只有一個主函數
左花括號表示函數起始,右花括號表示函數結束
第二章知識
標識符:只能含有字母,數字和下劃線,且數字不能做第一個字符
格式說明符:
格式:
%[標志][寬度修飾符][.精度][長度]格式字符
其中的方括號是可選項,格式字符是必選項
%---表示格式說明符開始
標志---+,-, # ,空格
+ ---輸出結果右對齊,左邊補齊空位,正負數都輸出符號
-? ---輸出結果左對齊,右邊補齊空位,負數輸出符號,正數不輸出正號
# ---在輸出o類八進制整數時加前導0,在輸出x類十六進制的整數時前導0x或是0X,其余無影響
空格 ---輸出值為正數時冠以空格,輸出值為負數時冠以負號
輸入函數scanf
#include <stdio.h>
int main()
{int a,b,sum;printf("請輸入兩個整數:");scanf("%d,%d", &a, &b);sum=a+b;printf("求和:%d+%d=%d\n",a, b,sum);return 0;
}
此時中文輸入,可以看到出現了問題,但是換成英文輸入
經過查詢,要了解到scanf函數的輸入時是區分中英文輸入的
字符的輸入:
- getchar()函數直接獲取字符,但是需要輸入換行符才獲取并回顯
- getch()函數直接獲取,即不需輸入換行符就直接讀取,但是不回顯
- getche()函數直接獲取字符,不需輸入換行符直接獲取并且直接回顯,即輸入將會顯示兩個所輸入的字符,其中第一個是輸入的,第二個是輸出回顯的
- getch()函數和getche()函數需要頭文件conio.h,否則將會報錯
單字符------用單引號(定界符)引用
字符串------用雙引號(定界符)引用
表達式值的類型,c語言會自動轉換,比如1/2時,由于1,2都是整數,原得到的計算值應該時0.5,但是由于自動轉換就會保存為整數,導致得到的時0
自動類型轉換:1.同類型的運算結果類型不變
????????????????????????? 2.混合運算中,運算結果取高一級的數據類型
強制類型轉換:利用轉換值類型運算符(),將運算對象的類型轉換為指定類型
(類型名)運算對象 eg. (int)3.1415----->3 (float)3.1415---->3.141500
自動轉換的解決辦法——將其中一個的類型轉換為更高的類型
eg.height=1/2a*t*t(這里的結果無論a,t多大都一定為0),為了改變這個情況,我們就將1
或者2改為1.0或者2.0
第三章
關系運算符
關系運算符==與賦值運算符=的比較
== | = |
---|---|
比較運算符,比較左右兩邊是否相等 | 賦值運算符,將右側的值賦給左側 |
int a=1,b=3,c=4
| int a=1,b=3,c;
|
不可以寫'A'<=x<='Z',雖然等價于'A'<=x以及x<='Z',但是c語言中運行錯誤,因為不能如python語言一樣,要改為'A'<=x&&x<='Z'[c語言不支持連續判斷大小,只能用&&連接]
邏輯運算符
運算符 | 名稱 |
---|---|
! | 非 |
&& | 與 |
|| | 或 |
其中與和或運算符可能存在“短路的情況”:
- 與運算符&&:當左側為假時,右側就不用再次計算了,因為一假為假
- 或運算符||:當左側為真時,右側就不計算了,因為一真為真
連續的關系判斷盡量用邏輯運算符連接