// 1.類型轉(zhuǎn)換
/*
// int 占用4個字節(jié) double 占用8個字節(jié)
// 只是相同類型的數(shù)據(jù)才能進行運算, 隱式類型轉(zhuǎn)換 將小類型轉(zhuǎn)換為大類型, 然后再進行運算
// 在賦值的時候系統(tǒng)又給我們進行了一次隱式類型轉(zhuǎn)換
// 發(fā)現(xiàn), 如果在隱式類型轉(zhuǎn)換的時候, 將大類型轉(zhuǎn)換為小類型會丟失精度
int result = 10.9;
printf("result = %d\n", result);
// 強制類型轉(zhuǎn)換格式: (類型)被強制類型轉(zhuǎn)換的數(shù)據(jù)
int result2 = (int)10.9;
printf("result2 = %i", result2);
// 自動類型提升
// 自動類型的提升, 將參與運算的數(shù)據(jù)都轉(zhuǎn)換為同一類型后再運算
// 會自動將小的數(shù)據(jù)類型提升為大的數(shù)據(jù)類型
int result3 = 1 + 9.9; // 1.0 + 9.9 = 10.9
*/
/*
// 在算術(shù)運算中, 參與運算的是什么類型, 計算出來就是什么類型
// double result = 1.0 / 2; // 1.0 / 2.0 --> 0.5
// double result = (double)1 / 2;// 1.0 / 2.0 --> 0.5
double result = (double)(1 / 2); // (double)(0) --> 0.0
printf("result = %lf\n", result);
*/
// 2.算術(shù)運算符的結(jié)合性, 左結(jié)合, 從左至右的計算
// 3.算術(shù)運算符的優(yōu)先級 * / % 大于 + -
// 如果優(yōu)先級和結(jié)合同時存在, 那么先優(yōu)先級再結(jié)核性
運算符
+ 加法
- 減法
* 乘法
/ 除法
% 取模(取余)
// 1.最簡單的賦值運算符
// 賦值運算符的結(jié)合性: 從右至左
// int result = 10;
// 2.復(fù)合賦值運算符: += -= *= /= %=
int result = 10;
// result = result + 5;// result = 10 + 5; result = 15
// result += 5; // 相當(dāng)于 result = result + 5;
// result -= 5; // 相當(dāng)于result = result - 5;
自增自減
result = result + 5 → result += 5
result = result + 1 → result += 1
加1: result++先運算再自增备徐; ++result 先自增再運算;
關(guān)系運算符:
>
<
>=
<=
==
!=
關(guān)系運算符的返回值只有兩種, 要么真, 要么假. 1(真)和0(假)
例 int result = a > b;// 嗎? 大于, 真, 非0即真.
// 關(guān)系運算符也有優(yōu)先級. > < >= <= 優(yōu)先級大于 == !=
邏輯運算符
/*
邏輯運算符的返回值只有兩種: 要么真要么假, 要么是1(真), 要么是0(假)
&&(與運算)
格式: 表達式1 && 表達式2
結(jié)合性: 從左至右
只有表達式1和表達式2都為真的時候, 邏輯與表達式才返回真
如果表達式1或者表達式2中有一個是假, 那么邏輯與表達式返回的結(jié)果都是假
口訣: 一假則假
||(或運算)
格式: 表達式1 || 表達式2
結(jié)合性: 從左至右
只要表達式1或者表達式2中有一個是真的, 邏輯或表達式返回的值就是真
只有表達式1和表達式2的值都是假, 邏輯或的值才是假
口訣: 一真則真
!(非運算)
格式: !表達式
結(jié)合性: 從右至左
如果表達式是真, 就返回假
如果表達式是加, 就返回真
取反
*/
注意點:與 或 前面表達式成立瘟裸,則后面表達式不參與運算曹洽,稱為邏輯運算符的短路
三目運算符
// 三目運算符格式: 條件表達式 ? 結(jié)果A : 結(jié)果B
// 結(jié)合性: 從左至右
// 只要條件表達式為真就返回結(jié)果A, 如果條件表達式為假, 那么就返回結(jié)果B
// a大于b嗎? 如果a大于b就返回a, 否則返回b
// 三目運算符的優(yōu)先級: 低于關(guān)系運算符和算術(shù)運算符
if注意點
// 因為C語言中, 任何數(shù)值都有真假性, 非0即真
// 以后如果要判斷某一個變量是否等于某一個值, 建議把常量寫前面, 變量寫后面
快捷鍵
// 移動代碼的快捷鍵:
// 上下移動:? command + option + (上) /
// 左右移動: command + ](右) [(左)