scanf函式 算術運算子及逗號表示式的使用注意

2021-07-05 22:49:30 字數 1357 閱讀 1542

scanf函式:

語法:scanf("格式化字串",位址列表);

例:scanf("%d",&int型別的變數);

int num;

scanf("%d",&num);

scanf使用注意

1.可以同時接收多個輸入:可以輸入的時候以空格區分

2.如果想改變他們的輸入方式,就在兩個格式化控制符之間加符號,那麼輸入的時候也必須按這個格式來輸入

3.最好不要輸入乙個數字後立刻接收輸入字元

4.如果想用兩句scanf來先接收乙個數字,再接收乙個字元,那麼為了防止字元吸收到回車或空格,我們可以在格式化控制符之前加乙個空格,或者把緩衝區裡的字元全部吸收掉

5.如果scanf需要接收乙個數字,那麼不管你按多少次回車或者空格,都沒用

scanf的原理:

1). 使用者從控制台輸入的資料是先儲存在1個叫做緩衝區地方

2). 當scanf函式準備為變數賦值的時候.先看看緩衝區中有沒有資料

如果緩衝區中沒有合適的資料 才會暫停程式讓使用者從控制台輸入

如果緩衝區中有合適的資料  直接將快取區中的資料拿出來賦值給變數

算數運算子:

+:跟數學一樣

-:跟數學一樣

*:跟數學一樣

/:如果兩個運算元都是整數,那麼結果一定是整數(就是數學中算得多少只取整數部分),如果運算元有乙個是浮點數,那麼結果一定是浮點數

%:就是取餘數,什麼叫餘數?除不盡,餘下的數就叫餘數。

取餘的正負性:只取決於左邊的那個運算元是正還是負

取餘不能用在浮點數

優先順序:

有括號先算括號,先乘除後加減

如果同級:從左往右依次運算

復合運算子:

+=:在原來的值的基礎上相加

-=:在原來的值的基礎上相減

*=:在原來的值的基礎上相乘

/=:在原來的值的基礎上相除

%=:在原來的值的基礎上取餘

例: int num = 10;

num += 12;

num %= 12;

自增和自減:

++和--

在原來的值的基礎上+1

不能對常量進行自增和自減

字首的自增(自減)以及字尾的自增(自減)

字首:先自增(自減)再參與運算

字尾:先用原來的值參與運算,後自增(自減)

補充:同時宣告多個變數,用逗號隔開

int num1,num2; //int num1; int num2;

int num3=10,num4=20;

逗號表示式:

語法:(表示式1,表示式2,………………表示式n);

語義:從左往右每個表示式都會執行,但是總體的表示式的值,只取最後乙個表示式的結果

逗號運算子

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。假設b 2,c 7,d 5,a1 b,c d 3 a2 b,c d 3 對於第一行 有三個表示式,用逗號分開,所以最終的值應該是最後乙個表示式的值,也就是d 3,為8,所以a1 8。對於第...

逗號運算子

c 語言中,逗號 也可以是運算子,稱為逗號運算子 comma operator 逗號運算子可以把兩個以上 包含兩個 的表示式連線成乙個表示式,稱為逗號表示式。其一般形式為 子表示式1,子表示式2,子表示式n 例如 a b,c b,c 逗號運算子的優先順序是所有運算子中級別最低的,通常配合 for 迴...

逗號運算子

逗號運算子是指在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。例子 int a1,a2,b 2,c 7,d 5 第1行 a1 b,c d 3 第2行 a2 b,c d 3 第3行 對於給a1賦值的 有三個表示式,用逗號分開,所以最終的值...