記事ディレクトリ
1.基本的なデータ型
7つの基本的なC ++データ型:bool、char、int、float、double、void、wchar_t。
タイプ修飾子:signed、unsigned、short、long、longlong。
変数のタイプまたはサイズを知りたい場合は、次のようにすることができます。
#include <iostream>
using namespace std;
int main()
{
cout<<"bool:"<<sizeof(bool)<<endl
<<"char:"<<sizeof(char)<<endl
<<"float:"<<sizeof(float)<<endl
<<"double:"<<sizeof(double)<<endl
<<"long:"<<sizeof(long)<<endl
<<"long long :"<<sizeof(long long)<<endl;
return 0;
}
出力は次のとおりです。
bool:1
char:1
float:4
double:8
long:8
long long :8
2.整数型
C ++は、基数10、基数8(古いUNIXバージョン)、基数16(ハードウェアハッカーのお気に入り)の3つの異なるカウント方法で整数を書き込むことができます。
例として42を取り上げます。対応する書き込み方法は42,042と0x42(または0X42)であり、10進数の意味はそれぞれ42、34、66です。
手順は次のとおりです。
#include <iostream>
using namespace std;
int main()
{
int num10 = 42;//十进制
int num8 = 042;//八进制
int num16 = 0x42;//十六进制
cout<<num10<<endl
<<num8<<endl
<<num16<<endl;
return 0;
}
3.文字タイプとwchar_t
3.1文字
charは、文字を格納するために特別に設計されています。コンピュータの場合、数字を保存することは何もありませんが、文字を保存することは別の問題です。プログラミング言語はこの問題を解決するために文字の数値コーディングを使用するため、char型は別の種類のシェーピングです。
128文字を表すことができ、ASCIIエンコーディングを使用します。特定の形式については、教科書の付録Cを参照してください。たとえば、文字Aのコードは65で、文字Mのコードは77です。
charを出力するには、coutとcout.putの2つの方法があり、後者はchar出力専用であり、それらの出力はcharに対応する文字です。対応するコードを出力する必要がある場合は、int型に変換できます。コードは以下のように表示されます。
#include <iostream>
using namespace std;
int main()
{
char ch = 'A';
cout<<ch<<endl;
cout.put(ch);
int intA = ch;
cout<<endl<<intA<<endl;
return 0;
}
出力は次のとおりです。
A
A
65
3.2エスケープ文字
一部の文字は、キーボードからプログラムに入力できません。たとえば、Enterキーを押すと、文字列に改行文字を含めることができます。特殊文字の場合、C ++は特別な表現方法であるエスケープシーケンスを提供します。エスケープシーケンスは、文字定数または文字列で使用できます。といった
#include <iostream>
using namespace std;
int main()
{
char alarm = '\a';//表示振铃
int intAlarm = alarm;
cout<<intAlarm<<endl;
cout<<"他说:\"大家好!\""<<endl;
}
出力:
7
他说:"大家好!"
上記の表によると、「\ n」と「\ 012」(8進数)、「\ 0xa」(16進数)はどちらも改行を意味していることがわかります。
テストコード:
#include<string>
#include<iostream>
using namespace std;
int main()
{
cout<<"test1\012";
cout<<"test2"<<"\0xa";//用QT测试,这里16进制好像有一点问题?
cout<<"test3\n";
cout<<"test4"<<endl;
}
3.3符号付き文字和符号なし文字
int型とは異なり、charはデフォルトではunsignedでもsignedでもありません。特別な選択が必要な場合は、手動でタイプを追加できます。
unsigned charは0〜255を意味し、signed charは-128〜127を意味します。
3.4ユニバーサルキャラクター名
たとえば、フランス語の特殊記号はASCIIで表現するのが難しいため、UnicodeとISO 10646のエンコードがあり、それらのエンコードは同期されています。
ユニバーサル文字名には、\ u:の後に8桁の16進数を使用できます。\ U:その後に16桁の16進数が続きます。といった:
int k\u00F6rper;
3.5 wcha_t
国際的な分野では、128ビットは国際的なニーズを十分に満たすことができません。C++はワイド文字タイプをサポートし、国際的なUnicode文字セットなどのより多くの値を格納できます。
Cinとcoutは、入力と出力をcharストリームとして扱うため、wchar_tには適用されません。iostreamは、同様のツールwcinおよびwcoutを提供します。
この本ではwchar_tについては紹介していませんが、特にUnicodeとISO10646ではこのタイプを知っておく必要があります。
C ++は、char16_t型とchar32_t型を追加しました。これらは、それぞれ符号なし16ビットと符号なし32ビットです。C ++ 11では、プレフィックスとu、およびプレフィックスとUをそれぞれ使用します。といった:
#include <iostream>
using namespace std;
int main()
{
char16_t ch1 = u'q';
char32_t ch2 = U'\U0000222B';
cout<<ch1<<endl;
cout<<ch2<<endl;
return 0;
}
出力は次のとおりです。
113
8747
4.ブール型
boolとintは相互に変換できます。intが0でない場合はtrue、0はfalseです。例えば
int ans =true;//转换为1
int promise =false;//转换为0
bool start = -100;//转换为true
bool stop = 0;//转换为false
5.修飾子を定義して構成します
- #define
#define INT_MAX 32737
#defineは#includeに似ており、コンパイル前の命令でもあります。プログラムでINT_MAXを見つけ、すべてのINT_MAXを30767に置き換えます。変更されたプログラムは、置き換えが完了した後にコンパイルされます。
#defineはC言語の遺産です。C++では、シンボリック定数constを作成するためのより良い方法があります。ただし、CおよびC ++で使用するように設計されている一部のヘッダーファイルでは、#defineを使用する必要があります。
- const
constは、C ++で提供される定数を定義するキーワードであり、defineよりも優れています。その理由は次のとおりです。
- タイプを明示的に指定できます。
- C ++スコープ規則を使用して、定義を特定の関数またはファイルに制限できます。
- constは、配列や構造体など、より複雑な型に使用できます。
6.初期化
C ++ 11での初期化(「{}」で表される初期化)は狭めることができないことに注意してください。たとえば、浮動小数点型を整数型に変換することは許可されていません。
int A =100;//c语言初始化
int A(100);//C++初始化
int A{
100};//C++11初始化
int A = {
100};//C++11初始化
7.浮動小数点タイプ
浮動小数点型はコンピューターの2つの部分に格納され、1つは値を表し、もう1つは拡大または縮小を表します。たとえば、3.1415926と3415.926は、小数点の位置を除いて同じです。3.14は、0.314(参照)および10(倍率)として表されます。
C ++には、float、double、longdoubleの3つの浮動小数点型があります。
7.12つの表現方法
- 標準小数点法:
12.34- E表記
2.52e + 8または2.52E + 8 // 10の8乗を
表す2.52e-8 // 10の8乗を表す
d.ddE + n:小数点が8桁右にシフトすることを意味します。d.ddE-nは小数点が8桁左にシフトすることを意味します。
7.2浮動小数点数の長所と短所
-
利点
整数間の値を表すことができます
スケーリング係数があります -
短所
浮動小数点演算の速度は通常、整数演算よりも遅く、精度が低下します。以下はその一例です。
#include <iostream>
using namespace std;
int main()
{
float a = 2.34E+22f;
float b = a + 1.0f;
cout<<"a = "<<a<<endl;
cout<<"b - a ="<<b - a<<endl;
}
出力結果:
a = 2.34e+22
b - a =0
2.34E + 22は、小数点の左側に23桁の数字があるためです。23番目の位置に1を追加するには、1を追加します。ただし、float型は数値の最初の6桁または7桁しか表すことができないため、23桁目を変更してもこの値には影響しないため、出力は変更されません。
8. C ++算術演算子
C ++には、加算、減算、乗算、除算、モジュロの5つの算術計算があります。(+-* /%)
さらに、C ++には自己加算演算子と自己デクリメント演算子があります:++および–
8.1型変換
強制型変換の2つの表現:
(long) thorn
long (thorn)
とげ自体は変更されませんが、指定されたタイプの新しい値が作成されます。
C ++では、4つのキャスト演算子も導入されています。フォローアップサプリメントで紹介されます。
8.2 C ++ 11での自動宣言
AutoはC言語のキーワードですが、めったに使われません。C ++ 11はそれを拡張しました。その役割は、コンパイラーに初期値のタイプに基づいて変数のタイプを推測させることです。例えば:
auto n = 100;//n表示int
auto x = 1.5;//x表示double
もう一つの例:
std::vector<double> scores;
auto pv = scores.begin();
概要カタログ
前へ:(1)基本的な紹介
次へ:(3)化合物タイプ
記事の参照:「C ++ Primer PlusSixthEdition」