Linux C 學習筆記 第二天 類型,運算符,表達式

  1. 類型決定了可取值的集合,可進行的操作

  2. 運算符指定要進行的操作

  3. 表達式組合變量和常量生成新值

類型

  • char 字符型 1字節 == 1 byte == 8bit

  • int 整型 2-4字節取決於編譯器

  • float 單精度浮點

  • double 雙精度浮點

  • short和long限定整型

    • short int sh;

    • long int counterl

    • int可省略

    • short int <= int <= long int

      • 通常 short == 16字節

      • long int == 32字節

      • int 16或32字節

  • unsigned, signed限定char和整型

    • char == signed char 還是 char == unsigned char 取決於編譯器
  • long double

常量

  • 123

  • 1234567890l/1234567890L

  • 234u/234U

  • 1234567890ul/1234567890UL

  • 123.4/12.3e-2 double

  • 123.4f

  • 123.4l long double

  • 037, 0x37,0X37, 0XFUL

  • 字符常量 == 1字節整型

  • 轉義字符

    • \ooo \013

    • \xhh \xb

    • ‘\0’ 表示值爲0的字符 == null

  • 常量表達式在編譯時求值,而不是在運行時求值.

  • 字符串常量 – 字符串字面值

    • "hello world" == "hello" "world"

    • strlen(s) 返回字符串長度,但不包括’\0’

  • 枚舉

enum boolean {NO, YES}; // 默認NO == 0
enum escapes {BELL='\a', BACKSPACE='\b', TAB='\t'};
enum months {JAN=1,FAB,MAR,APR};
- 不同枚舉,值必須不同.

- 同一枚舉不同名字可以具有相同值
#include<stdio.h>

enum DAY
{
    MON=1, TUE, WED, THU, FRI, SAT, SUN
};

int main()
{
    enum DAY day;
    day = WED;
    printf("%d",day);
    return 0;
}

聲明

先聲明後使用

  • 外部變量, 靜態變量 初始化爲0

  • 自動變量(局部變量)值爲未定義值 – 無效值.

  • const 值不能修改, 對於數組,所有元素的值不能修改.

    • const double e = 2.7124234;

    • const char msg[] = "warning: "

    • int strlen(const char[]);

類型轉換

  • <ctype.h> 定義一組字符的測試和轉換函數

  • 如果定義char存儲非字符用途,最好定義 signed char 或 unsigned char

  • 函數調用參數是表達式,將會進行類型轉換,在沒有函數原型的情況下,char和short將自動轉換爲int, flost轉換爲double,因此,即使調用函數的參數爲char或float,我們也把函數參數聲明爲int或double. – 最佳實踐,非語法強制約束

  • 強制類型轉換

    • sqrt((double) n)

    • 通常情況下,參數是通過函數原型聲明的,函數被調用時,聲明將對參數進行自動強制轉換

按位運算符

  • 只作用於帶符號和無符號的char,short,int,long

  • x=1 y=2 x&y==0 x&&y=1 邏輯與

  • << 左移 右邊補0 >>右移+signed取決於機器類型, 右移+unsigned補0

三元表達式

c=(a>b)?a:b

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章