1.1bool(布林值):布林值,取true或者false,佔1個位元組。
voidf(
int a,
int b)
;//a=b,則b1為true;否則為false;
}bool
is_open
(file*);
bool
greater
(int a,
int b)
bool b1=7;
//b1為false;
int i1=
true
;int i2
;//i1;i2均為1;
voidf(
int i);}
bool a =
true
;bool b =
true
;bool x = a + b;
bool y = a || b;
bool z = a - b;
cout <<
"x="
<< x <<
"; y="
<< y <<
"; z="
<< z << endl;
指標也能被隱式轉化為bool型別
voidg(
int*p);if
(p)//等價於p!=nullptr;
}
1.2 char //字元,如『a』或者』9』,佔1個位元組。signed char:-127~127;unsigned char:0~255;
計算任意字元所對應的整數值:
}//0的ascii碼為48
1.3 整型型別
整數型別包含int、signed int和unsigned int。整數還可以劃分成另外4種形式:short int、int、long int和long long int。其中,long int即long;long long int即long long。類似,short 是short int的同義詞;unsigned是unsigned int的同義詞;signed是signed int的同義詞。
1.4浮點數型別
預設情況下,浮點數字面值常量的型別是double;如果是想定義乙個float型別的常量,數字末尾記得加上字尾f和f;如:2.0f;2.9e-3f;
如果是想定義乙個long double型別的常量,數字末尾記得加上字尾l和l;如:2.0l;3.1415926l;
1.5字首和字尾
0 八進位制
0x 0x 十六進製制
u u unsigned
l l long
ll ll long long
字尾l和l可以與u和u結合一起使用,表達資料型別為unsigned long。
1.6 void 型別
一般來說,void有兩個作用;一是作為函式的返回型別表示該函式不返回任何實際的值;二是作為該指標的基本型別部分以表明指標所指物件的型別未知。
例如:void f(); //函式f不返回任何值
void *pv; //指標所指向的物件型別未知
可選的前置修飾符(static、virtual);
基本型別(vector、const int);
可選宣告符(p[7]、n);
可選字尾函式修飾符(const、noexcept);
可選初始化器和函式體(=、);
const charkings=;
基本型別是const char,宣告符是kings
注意virtual和extern、constexpr等用法。
//缺少資料型別
const c=7gt
(int a,
int b)
2.1宣告多個名字int x,y; //int x,int y;
int *x,y; //int *x,int y;
int x,*y; //int x,int *y;
int v[10],*pv; //int v[10];int *pv;
識別符號大命名區分大小寫,因此count和count是兩個不同的名字。
2.2作用域
主要分為幾大部分:區域性作用域:區域性名字的作用域從宣告處開始,到宣告語句所在的塊結束,塊是指一對{}所包圍的**片段。
類作用域:該類中的成員名字和類成員名字,它們的作用域從類宣告的
x =3;
cout << x << endl;
}int x=8;
//全域性變數x
2.3初始化
初始化有四種形式
x a1 ; //推薦使用
x a2 =;
x a3 =v;
x a4(v) ;
空初始化列表{}指定預設值進行初始化
int x4{}; //賦值為0
double d4{}; //賦值為0
char *p{}; //賦值為nullptr
vector v4{}; //賦值為空向量
string s4 {}; //賦值""
初始化器列表
complexz1(1,2);
complexf1();
complexz2;
complexf2{};
auto x1 ; {}列表自動推導為initializer_list.
auto x1 ; {}列表自動推導為initializer_list.
auto x1 ; {}無法自動推導
auto和decltype()報道編譯器已知的一種表達型別。
使用{}可以進行型別強制轉換,或者用auto。
auto v1=123; //int
auto v1 ;
auto v2=『c』; //char
auto v2 ;
auto v3=f(); //適合的型別
auto v3 ;
2.4物件和值
2.5型別別名
typedef int int32_t //等價 using int32_t=int;
typedef short int16_t //等價 using int16_t=short;
typedef void(ptof)(int) //等價 using ptof=void()(int);
定義和宣告
定義 什麼是定義?所謂的定義就是 編譯器 創造乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們常常說的定義名或物件名。但注意,這個名字一旦和這塊記憶體匹配起來 可以想象是這個名字嫁給了這塊空間,沒有要彩禮啊 它們就生死與共,終生不離不棄,並且這塊內 存的位置也不能被改變。乙個變...
C語言定義和宣告區別
1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明顯。通常變數定義和宣告...
C語言定義和宣告區別
c語言定義和宣告區別 1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明...