iOS開發入門 ☞ C言語(運算符)。本站提示廣大學習愛好者:(iOS開發入門 ☞ C言語(運算符))文章只能為提供參考,不一定能成為您想要的結果。以下是iOS開發入門 ☞ C言語(運算符)正文
% 取模(取余)運算符的留意事項:
1)取模運算符的操作數只能是整數
2)取模運算符的正負性取決於後面那個操作數正負
3)假如取模運算的右邊小於左邊, 那麼後果就是右邊
取余(模運算):5%3=2; -5%3=-2; 5%-3=2; -5%-3=-2 (余數的符號與被除數分歧!)
2%9=2;
算術運算的留意點:int a = 10.6;
int b = 10.5 + 1.7;
int b = 10.5 + 10; //將左邊的10提升為了double類型
自動將大類型轉換為了小類型,會喪失精度
(相反數據類型的值才干停止運算(比方加法運算),而且運算後果仍然是同一種數據類型。零碎會自動對占用內存較少的類型做一個“自動類型提升”的操作)
float a = 10 + 3.45f;//int 提升為 float
int b = 'A' + 32; // char 提升為 int
double c = 10.3f + 5.7; // float 提升為 double
double b = 1.0 / 2;
(將大范圍的數據賦值給小范圍變量時,零碎會自動做一個強迫類型轉換的操作,這樣容易喪失精度)
double a = (double)1 / 2;
double b = (double)(1 / 2);
int i = 10.7; //零碎轉
int i = (int) 10.7; //自己強轉
int a = 198l; // long 轉換為 int
char b = 65; // int 轉換為 char
int c = 19.5f; // float 轉換為 int
賦值運算符的結合方向是:從右到左,而且優先級比算術運算符低
賦值運算符是一切運算符中除了逗號運算符以外優先級最低的
自增自減寫在後面和前面的區別:
int b = ++a; //等價於 a=a+1; b=a;
int b = a++; //等價於 b=a; a=a+1;
運算規則:先左++,再賦值,最後右++。
sizeof()運算符:
sizeof可以用來計算一個變量或許一個常量、一種數據類型所占的內存字節數。
留意:sizeof是一個運算符, 不是一個函數
應用sizeof計算的格式: sizeof(變量/常量/數據類型);
sizeof一共有3種方式:
舉例:
#include <stdio.h>
int main() {
char c='a';
printf("%lu, %lu\n", sizeof(10), sizeof(c));//4, 1
printf("%lu, %lu\n", sizeof 10, sizeof c);//4, 1
printf("%lu\n", sizeof(int));//4
return 0;
}
逗號運算符和逗號表達式
例如:a=a+1,b=3*4
它的普通方式為:表達式1,表達式2,… …,表達式n
逗號表達式的運算進程是:先算表達式1,再算表達式2,順次算到表達式n
整個逗號表達式的值是最後一個表達式的值
//逗號運算符
#include <stdio.h>
//逗號運算符相似於加減乘除運算符,逗號運算符取最後一個表達式的值。
int main(){
int num,num1;
num=4,7; //逗號運算符的優先級低於賦值運算符
num1=(4,7); //進步逗號運算符的優先級,先逗號運算,再賦值運算
printf("num=%d num1=%d\n",num,num1); // num=4 num1=7
return 0;
}
關系運算符
< 小於運算符
<= 小於等於運算符
> 大於運算符
>= 大於等於運算符
== 等於運算符
!= 不等於運算符
關系運算符的前往值只要兩種, 要麼真, 要麼假. 1(真)和0(假)
運用留意(優先級):
如:3+4>8-2;//後果為1; 等價於:(3+4)>(8-2);
如:4>3>2;//後果為0
如:2==3>1;//後果為0; 等價於:2==(3>1);
int a=3>4+7;//後果為0
int b=(3>4)+7;//後果為7
int c=5!=4+2*7>3==10;//後果為0
邏輯運算符&& 邏輯與 、|| 邏輯或 、! 邏輯非
運用留意:
&& 和 || 都具有短路特征:
假如前一個表達式能決議最終後果則不會計算後一個表達式!
#include <stdio.h>
int main() {
//邏輯運算符&&和||的短路特征
int a=3,b=4,c=5,r;
r=(a>b)&&(++b>c);
printf("%d,%d,%d,%d\n", a, b, c, r);//3, 4, 5, 0
r=(a<b++)||(b<c++);
printf("%d,%d,%d,%d\n", a, b, c, r);//3, 5, 5, 1
//非短路的邏輯運算符&和|
a=3;b=4;c=5;
r=(a>b)&(b>++c);
printf("%d,%d,%d,%d\n", a, b, c, r);//3, 4, 6, 0
r=(a<b)|(b<c++);
printf("%d,%d,%d,%d\n", a, b, c, r);//3, 4, 7, 1
return 0;
}
優先級:邏輯運算符的優先級順序為: 小括號() > 負號 - > ! > 算術運算符 > 關系運算符 > && > ||
條件運算符(三目運算符 " ? : "):表達式1?表達式2:表達式3
假如表達式1為真,三目運算符的運算後果為表達式2的值,否則為表達式3的值
單目運算符:操作數只要一個(-1;)
雙目運算符:操作數有兩個(1 - 2;)
三目運算符:操作數有三個(5 > 4 ? 1 : 0)
當我們不確定某些運算符的優先級的時分,可以運用() 來明白優先級