至LESSON24

 

float a = 5 / 2;

此時a為2.000...

float a = 5 / 2.0;

那麼a為2.50000...

 

int array[10] = { 0 };

第一個元素 array[0] 被顯式初始化為 0

其餘9個元素 會自動被初始化為 0(這是C語言的規則)

 

int a = (c = 2, b = 3, 1);

從左到右計算 最後一個表達式的結果是整個表達式的值。

 

所有局部變量其實都是auto變量

 

[]在訪問過程中是操作符 為雙目 arr[10] 操作數為arr 和 10

在定義過程中不得用變量 此時[]不是操作符

 

複習C語言隨筆 四_操作符

 

複習C語言隨筆 四_十六進制_02

 

複習C語言隨筆 四_十六進制_03

 函數的static情況類似於變量。

 

register int a = 3; //建議3放入寄存器中
 
define:
1.定義標識符常量
2.定義宏
#define ADD(a,b) ((a) + (b))
直接調用即可:
int a = ADD( 3 , 4);
 
#define ADD(a,b) ((a) + (b))
#include <stdio.h>
int main() {
printf("%d",ADD(3, 4));
}

 

複習C語言隨筆 四_操作符_04

 

 

複習C語言隨筆 四_十六進制_05

有2的32次方種的地址 每個地址對應着一個內存單元 一個內存單元1Byte 所以計算下來32位的機器最多可以管理4G的內存

 

複習C語言隨筆 四_操作符_06

 

複習C語言隨筆 四_#define_07

 

指針變量的類型指的是 地址下所對應元素的類型

複習C語言隨筆 四_操作符_08

 四個地址 對應 四個字節:0a 00 00 00

一位十六進制字符對應四位的二進制字符(8421)

這裏就有8x4=32位的二進制 也就是4個字節 這些都是牢牢對應的 也就是説一個地址 一個字節 兩個十六進制位

複習C語言隨筆 四_#define_09

 指針是用來存放地址的,地址的大小取決於機器是32位or64位,一個地址64位那麼就是8個字節 。

 

複習C語言隨筆 四_十六進制_10

 

解引用操作符的優先級低於成員成員訪問運算符,故要用(*p).age 或更優的替代 p->age

-> 左邊是結構體指針變量  右邊是成員名

%p是專用來打印地址的

 

複習C語言隨筆 四_十六進制_11

這是typedef的常見用法 也就是起別名 typedef 本名 現有名

define不是關鍵字  是預處理指令

 

else和上一個if匹配 而不是看語句對齊的情況。