1. 程式人生 > >Linux C語言教程(一) 資料型別

Linux C語言教程(一) 資料型別

一、基礎型別

1.1 整型

整型常量的第一個字元是數字0,該常量會被視作八進位制,千萬不要為了格式對齊,將十進位制整型寫成八進位制。

1.1.2 列舉

1.2 浮點型

1.3 指標

1.3.1 字元指標

C語言是靜態弱型別語言,型別在編譯時需要確定,對於string型別,由於它的大小無法在編譯時確定,所以C語言中沒有string型別,通過char *和char []可以定義字串,不能使用運算子進行字串比較,因為C語言中字串名稱指向字串首位字元地址,若用運算子來比較字串比較的是字串首位字元的地址,不是字串值的比較。

#include <stdio.h>

int main() {
    char str1[] = {'h', 'e', 'l', 'l', 'o'};
    char str2[] = {'h', 'e', 'l', 'l', 'o', '\0'};
    char str3[5] = {'h', 'e', 'l', 'l', 'o'};
    char str4[] = "hello";
    char *str5 = "hello";
    printf("str1[%s] length[%lu] sizeof[%lu]\n", str1, strlen(str1), sizeof(str1));
    printf("str2[%s] length[%lu] sizeof[%lu]\n", str2, strlen(str2), sizeof(str2));
    printf("str3[%s] length[%lu] sizeof[%lu]\n", str3, strlen(str3), sizeof(str3));
    printf("str4[%s] length[%lu] sizeof[%lu]\n", str4, strlen(str4), sizeof(str4));
    printf("str5[%s] length[%lu] sizeof[%lu]\n", str5, strlen(str5), sizeof(str5));
   
    return 0;
}

輸出:

str1[hello] length[5] sizeof[5]
str2[hello] length[5] sizeof[6]
str3[hellohello] length[10] sizeof[5]
str4[hello] length[5] sizeof[6]
str5[hello] length[5] sizeof[8]

C語言中字元和字串也是有區別的,字元用單引號表示,實際代表一個整數,而字串用雙引號表示,代表指向無名陣列起始字元的指標。注意字串賦值時一定不要使用單引號,否則會引發意想不到的結果,如下程式碼直接引起coredump。

char *str = 'dianjing';
printf("str[%s]\n", str);

 

二、複合型別

2.1 陣列

2.2 共用體

2.3 結構體

三、資料型別轉換規則