c 中的資料型別

2021-09-07 05:35:38 字數 4484 閱讀 1232

1.資料型別簡介

c++中資料型別分為兩種:預定義型別和自定義資料型別。

預定義型別:整型(int 4個位元組)

字元型布林型 (bool)

浮點型(4個位元組)

空型別:關鍵字void,不能用於普通變數的宣告和普通的操作,只能用於指標型變數,函式返回值和函式引數。

指標型別

自定義型別:陣列、結構體(struct)、聯合體(union)、列舉(enum).具體在下邊介紹

2.型別修飾符:

signed,unsigned,short,long。

signed int a;//有符號整數

short int a;//短整型,2個位元組

long int a;//長整型,4個位元組

c++11中新增:long long整型有兩種:long long和unsigned long long。在c++11中,標準要求long long整型可以在不同平台上有不同的長度,但至少有64位。我們在寫常數字面量時,可以使用ll字尾(或是ll)標識乙個long long型別的字面量,而ull(或ull、ull、ull)表示乙個unsigned long long型別的字面量。比如:

long long int lli = -9000000000000000000ll;

unsigned long long int ulli = -9000000000000000000ull;

另外這幾個符號只能修飾int。

3.佔位符總結:

%d:int

%ld:

long

%f:float

%lf:double

%p:輸出變數位址

%x/%x:輸出十六進製制數

%s:輸出字串

%o:無符號八進位制整數

%u:無符號十進位制整數

%e/%e:用科學記數法輸出浮點數

4.基本資料型別**示例:

5.結構體資料型別

5.1結構體是由一系列具有相同型別或者不同型別的資料構成的資料集合。

定義:struct 名稱結構體變數名;

5.2結構體陣列:

struct infoinfo[size];

5.3結構體巢狀:

struct bookinfo;

struct readreinfo;

//結構體巢狀

struct libraryinfolibraryinfo;

**示例:

#include #define size 32

int main(void);

struct readreinfo;

//結構體巢狀

struct libraryinfolibraryinfo;

printf("input the book id:\n");

scanf("%d",&libraryinfo.id);

printf("input the book name:\n");

scanf("%s",libraryinfo.book.name);

printf("input the book author:\n");

scanf("%s",libraryinfo.book.author);

printf("input the book status:\n");

scanf("%d",&libraryinfo.book.status);

printf("input the reader name:\n");

scanf("%s",libraryinfo.reader.name);

printf("input the reader borrowdate:\n");

scanf("%s",libraryinfo.reader.date);

printf("圖書資訊如下:\n");

printf("圖書編號:%d\n",libraryinfo.id);

printf("書名:%s\n",libraryinfo.book.name);

printf("圖書當前狀態:%d\n",libraryinfo.book.status);

printf("讀者姓名:%s",libraryinfo.reader.name);

printf("借閱日期:%s",libraryinfo.reader.date);

6.聯合體

聯合體的使用方式和結構體及普通變數類似。

union 名稱;

聯合體的主要作用就是節省記憶體,因為聯合體中的·變數不像結構體中的成員變數那樣,系統會給其中的每乙個變數都分配相應的記憶體。在聯合體中,所有的成員變數共享一塊記憶體空間。該記憶體空間是其成員變數中佔位元組數最多的變數所占用的記憶體空間,並且所有的成員變數共用這一塊記憶體空間,因此聯合體中所有成員變數位址是一樣的。

示例**:

#include #define size 32

int main(void)info;

printf("input age:\n");

scanf("%d",&info.age);

printf("age:%d\n",info.age);

printf("input name:\n");

scanf("%s",info.name);

printf("name:%s\n",info.name);

printf("input address:\n");

scanf("%s",info.address);

printf("address:%s\n",info.address);//jinan

printf("name:%s\n",info.name); //jinan 和上邊的一樣,被覆蓋

從圖中可以看出:最下邊address和name最後的輸出是一樣的,jinan把前邊的chaochao覆蓋掉啦

另外它所有變數的位址也是一樣的。

7.列舉型別

enum 列舉型別名;

例:enum season;

示例**:

#include #include using namespace std;

int testenum();

int main()

//列舉型別中的變數為整型常量,除了定義時可以賦值外,其他時間都不可以

先寫這麼多,以後再補充。。

C 中的資料型別

一 值型別 三種 1 簡單型別 types a 整數型別 八種 sbyte 有符號8位整數 128 127 byte 無符號8位整數 0 255 short 有符號16位整數 32768 32767 ushort 無符號16位整數 0 65535 int 有符號32位整數 2147483648 21...

c 中的資料型別

c 中的資料型別大致分為兩類 變數 常量,下面具體介紹一下 一.變數 變數分為一下幾種 布林變數 bool 佔乙個位,可以賦值為true 1 false 0 個人理解就是巨集定義,寫在標頭檔案中 字元型變數 char 佔乙個位元組 雙位元組型變數 一般佔2個位元組 用途以後再說 整形變數 int l...

c 中的資料型別

8中整數型別sbyte byte short ushort int uint long ulong 2種用於科學計算的二進位制浮點數型別 float double 1種用於金融計算的十進位制浮點型別 decimal 1中布林型別 bool 1中字元型別 string 直接將值放到源 中稱為硬編碼,因...