Udemy

C++ Built-in Primitive Types

Tim Buchalka's Learn Programming Academyからの無料ビデオチュートリアル
Professional Programmers and Teachers - 2.28M students
評価: 4.5(5段階中)講師評価
62のコース
2,359,428人の受講生
C++ Built-in Primitive Types

レクチャーの説明

In this video we discuss compiler errors and introduce some errors into out first program to see how to correct them.

コース全体からもっと学ぶ

Beginning C++ Programming - From Beginner to Beyond

Obtain Modern C++ Object-Oriented Programming (OOP) and STL skills. C++14 and C++17 covered. C++20 info see below.

45:50:18のオンデマンドビデオ • 更新日: 4月 2025

Learn to program with one of the most powerful programming languages that exists today, C++.
Obtain the key concepts of programming that will also apply to other programming languages
Learn Modern C++ rather than an obsolete version of C++ that most other courses teach
Learn C++ features from basic to more advanced such as inheritance and polymorphic functions
Learn C++ using a proven curriculum that covers more material than most C++ university courses
Learn C++ from an experienced university full professor who has been using and teaching C++ for more than 25 years
Includes Quizzes, Live Coding Exercises, Challenge Coding Exercises and Assignments
New Section: Learn to use Visual Studio Code with C++
New Section: Learn all about using C++ Lambda Expressions
日本語 [自動]
このビデオでは、 一般的に使用されるc++のプリミティブデータ型について学びます。 これらの型は、 c++言語で直接実装されているため、 基本データ型と呼ばれることもあります。 このビデオでは、 文字型、 符号付き整数と符号なし整数を含む整数型、 浮動小数点型、 ブール型について説明します。 他の多くのプログラミング言語と異なり、 c++のプリミティブデータ型のサイズと精度は、 使用しているコンパイラや作業しているプラットフォームに大きく依存することを念頭に置いておくことが重要である。 つまり、 c++プログラマーとして、 特定のマシンを意識し、 これらのタイプを効果的に使用するために、 どれだけのストレージが割り当てられているかを理解する必要があるのです。 c++のインクルードファイルclimitsは、 あなたの特定のコンパイラのためのデータ型のサイズと精度の情報を含んでいます。 ご存知のように、 コンピュータは0と1からなる2進数表現で情報を記憶しています。 そして、 これらの基本的な型の大きさは、 ビットで表現されます。 型に割り当てられるビットの数が多いほど、 表現できる値が一意に定まる。 また、 ビットが多いほど、 その型をメモリ上で表現するために必要なストレージも多くなります。 この表では、 与えられたビット数でいくつの値が表現できるかを見ることができます。 これらの値を算出するための計算式は、 2をビット数乗したものである。 つまり、 8ビットで256個の異なる値を格納することができるのです。 16ビットで65,536個の異なる値。 32ビットで40億以上の異なる値。 そして、 32ビットで180億以上の異なる値。 では、 具体的なプリミティブの種類を一つずつ見ていきましょう。 c++の文字データ型は、 文字aやxなどの文字を表現するために使用されます。 文字データ型は8ビットで実装されることが多いので、 最大256文字を表現できることになる。 これだけあれば、 多くの話し言葉のアルファベットを表現することができます。 しかし、 話し言葉の中には何千もの文字があるものもあります。 また、 複数の記号を組み合わせて一文字にする場合も多い。 これらの言語をサポートするために、 c++はこれらの文字を表現するために必要なだけの広い文字型をサポートしています。 Unicodeは、 あらゆる言語の複数の文字セットを表現するために使用される共通の規格です。 このコースで文字を扱う場合、 charデータ型はラテン文字セットを簡単にサポートするので、 これを使用します。 C++は整数データ型もサポートしています。 整数は整数を表すのに使われます。 符号付き整数と符号なし整数の両方がサポートされており、 整数データ型には多くのバリエーションがあるので、 そのいくつかを見てみましょう。 次の表は、 符号付き整数と符号なし整数のc++整数データ型である。 表に示したものの他に、 文字データ型には符号付き整数と符号なし整数の両方を格納することが可能である。 この表のキーワードは、 太字とイタリック体になっているものがあることにご注目ください。 また、 代表的なサイズも表中に記載しています。 例えば、 符号付き整数を宣言する場合、 デフォルトで整数は符号付きなので、 signedキーワードを使う必要はない。 同様に、 非常に大きな数値を格納する整数型が欲しい場合は、 単純にlong, longと宣言すればよい。 そして、 符号付きの長い長い整数が得られます。 符号なし整数、 つまり0か正の値だけの整数が欲しい場合は、 unsignedキーワードを使う必要があります。 オプションのキーワードがたくさんあって少し混乱するかもしれませんが、 デフォルトですべての整数が符号付きであると考えるだけなら、 それほど悪いことではありません。 という気持ちはわかります。 私のアプリケーションでは、 どれを使えばいいのでしょうか? そしてその答えは、 「人それぞれ」です。 もし、 整数型変数が欲しいなら、 それは年齢を格納するのであれば、 符号なしintか、 あるいはintを使うことができるだろう。 もし、 惑星間のキロ数を整数で表したいのであれば、 おそらく符号なしlong、 longを使いたいところでしょう。 ほとんどのアプリケーションでは、 int型を使用しても全く問題ありません。 しかし、 特に変数に対して計算を行い、 結果を他の変数に保存する場合、 保存先の変数に結果が収まらないことがあるため、 制限を念頭に置いておく必要があります。 これにより、 オーバーフローが発生する可能性があります。 このビデオの最後に、 オーバーフローの具体例とライブコードを見ていきます。 C++は浮動小数点型もサポートしています。 これらは、 実数、 1のような数など、 整数でない数を表現するために使用されます。 2, 0. 5と円周率。 コンピュータの記憶容量が有限であること、 多くの実数が小数点以下の桁数が無限であることを理解することが重要です。 円周率はその典型的な例です。 このような場合、 コンピュータは実数の近似値を保存する。 コンピュータが円周率のような数字を正確に記憶できるわけがない。 浮動小数点数は、 コンピュータの内部では仮数と指数を持つ符号付き数値として表現されます。 学校で習った科学的記数法を覚えているかもしれませんね、 1. 10の7乗の234倍。 内部ではそのように保存されているのです。 これは、 内部で自動的に処理されるので、 心配する必要はありません。 しかし、 これらは近似値であることを知ることが重要です。 浮動小数点数には3つのタイプがあります。 Float、 double、 long double。 それぞれ、 コンパイラによって精度や大きさが異なる。 long doubleは非常に小さい浮動小数点数、 非常に大きい浮動小数点数を格納できることに注意してください。 最後に学ぶプリミティブは、 Boolean型です。 Boolean データ型は、 真と偽の値を表現するために使用されます。 c++では、 0はfalseで、 0以外の値はtrueとなります。 C++には、 Boolean型でよく使われるtrueとfalseのキーワードも含まれています。 ご想像の通り、 ブール型は何かが状態を変化させたかどうかを知る必要があるときに使われます。 例えば、 ゲームオーバーでキーが押されると無敵になります。 これらはすべて、 値が真または偽のどちらかになるため、 ブール型データ型を使用する良い例です。 素晴らしい。 では、 コードラインに移動して、 これらのプリミティブタイプを実際に見てみましょう。 今、 私はCodeLite IDEにいて、 セクション6のワークスペースにあるプリミティブタイプというプロジェクトを作りました。 このc++ファイルでは、 プリミティブ型を使用する例をいくつか見ていきます。 まずはキャラクターから。 整数と浮動小数点数をやって、 最後にブール演算をやります。 また、 オーバーフローの例も示しますので、 オーバーフローに伴う典型的な挙動をご確認ください。 先にコードを書いて、 たくさんコメントアウトしています。 そして、 コメントを解除して、 その一部を一度に実行することで、 ビルドを確認することができます。 そこで、 まず最初に、 この最初の例を見てみましょう。 これは、 文字データ型を使用する良い例です。 私のミドルイニシャルはJです。 つまり、 変数名はmiddle initialと呼ばれるもので、 文字データ型である。 だから、 一文字でも入れることができる。 c++が1文字を表現する方法は、 J doをシングルクォートで囲むことである。 二重引用符で囲むと文字列になり、 エラーになります。 ここでやっているのは、 真ん中のイニシャル変数をJに初期化して、 それをこのoutput文に表示するだけです。 だから、 私はビルドして実行します。 私はここをクリックして覚えているので、 ずっと私の選択を尋ねられることはありませんし、 ビルドして実行するだけです。 ここに私のミドルイニシャルがJと書かれているのがわかると思います。 まさに期待通り。 なるほど。 では、 ここで整数型のコメントを解除してみましょう。 コメントと非コメントを簡単に切り替える方法は、 興味のある行を選択して、 Ctrl / または Mac では Command / を押すだけで、 コメントと非コメントを切り替えることができます。 なるほど。 そこで今回は、 試験の点数という変数を作り、 55に初期化しています。 試験のスコアは、 符号なし短インテットです。 変数を符号なしにしたい場合は、 unsignedと言わなければならないことを忘れないでください。 でも、 intと言わなくても、 shortと言えばいいんです。 つまり、 これは無記名の短答式試験の点数を言っているのと同じことです。 なるほど。 だから、 それを55に初期化しているんです。 そしてまた、 私が作って走ります。 そして今、 私のミドルイニシャルはまだJで、 試験の点数は55点であることがおわかりいただけると思います。 なるほど。 この場合、 もう一つ数字があるので、 それをコメントアウト解除します。 私の会議の参加国数は65カ国で、 初期化している。 デフォルトでは単純な整数になります。 サインを入れることになる。 そしてここには、 私の会合には65カ国が参加したと書かれています。 では、 もう一度実行してみます。 ショートカットを使うためだけに、 ウィンドウズでctrl F5を押しています。 そして、 ここにあるように、 私の会議には65カ国が参加しています。 さて、 今回は、 もっと大きな数字が出ました。 この2行をコメントアウトを解除してみます。 だから、 今はフロリダに人がいるんです。 それが私の変数名です。 私が住んでいるのはこの州ですが、 フロリダには2,061万人の人が住んでいます(Googleで調べたところ)。 だから、 私はこれをロングと定義しています。 私は、 それが長いものに巻かれることを望んでいます。 かなり大きな数字です。 確かにそうですね。 試してみよう。 フロリダには約2,061万人の人が住んでいることがわかります。 さて、 この場合、 地球上の人の数はどうでしょう。 その2行をアンコメントします。 そして、 私の変数名はpeople on earthで、 地球上には約7,600,000,000人の人がいることがおわかりいただけると思います。 面白いのは、 この数字がどんどん大きくなっていくことです。 読みにくいし。 ゼロを忘れたりするのは本当に簡単なことです。 そこで、 c++14の規格では、 そこにある小さな目盛りを使うことができるようになっています。 好きな場所に置くことができます。 本当にどうでもいいんです。 ただ、 読みやすくするために、 それらを取り除き、 番号を作成するだけです。 もし、 これでコンパイルできない場合は、 c++ 14コンパイラーを使用していない可能性が高いです。 c++11のコンパイラを使っているのですね。 c++14に設定するか、 この小さな目印を消すだけでコンパイルできるようになりますよ。 それで、 これを実行すると、 面白いことが起こるんです。 またctrl F5を押しています。 エラーが発生したことに気づく。 エラーには、 error narrowing conversionと書かれています。 その数字をロングに収めようとして、 収まらなくなっている。 これは、 中括弧を使ったリスト初期化について述べた利点の1つです。 そうするとどうなるかというと、 そうですね、 まずこれを長い長いとして走らせてみましょう、 そうしないと収まらないので、 本当にそうしたいのです。 だから今、 私は、 長い長い。 そして、 これをビルドして実行するんです。 そして、 7点ほどあるのがおわかりいただけると思います。 数字が正しいことがわかります。 なるほど。 しかし、 もし私が、 ここに等号をつけたC言語スタイルの初期化、 または代入文のようなものを、 普通に初期化したとしたら。 そして、 沿うに収まらないとわかっているからこそ、 ロングに戻す。 そして、 もう一度組み立てて走らせ、 何が印刷されるか見てみる。 地球上には、 約-98999人の人がいます。 これがオーバーフローの例です。 でも、 エラーが出なかったことにも気づきましたね。 それが、 リスト初期化を使うメリットのひとつです。 リスナーによる初期化を使えば、 コンパイル時にそのような問題をキャッチしてくれるので、 本当にありがたいですね。 そこで改めて、 ここにまとめます。 Ctrl F5を押すと、 エラーになります。 問題があるのは分かっているんだ。 直せます。 ということで、 長い長いと思いますが、 よろしくお願いします。 なるほど。 ということで、 ご理解いただけたでしょうか。 常にそのリスト初期化構文を使用します。 すごくいいんですよ。 この場合、 アルファ・ケンタウリまでの距離が欲しい。 かなり遠いですね。 これは、 確か、 キロメートル単位で、 うん。 キロメートル単位です。 私の出力文にはそう書いてあります。 この2行のコメントを解除しておきます。 そして、 これを実行しよう。 そして、 ケンタウルス座アルファ星までの距離もわかります。 そして、 これが私の番号です。 その通りです。 なるほど。 つまり、 オーバーフローの良い例ですね。 このソースコードの最後に、 これほど明白ではないかもしれませんが、 別のオーバーフローの例をお見せします。 なるほど。 そこで、 浮動小数点型を使った例をいくつか挙げてみましょう。 忘れないでください、 これは実際の数字なのです。 小数点以下の数字です。 つまり、 この場合、 私の車の支払いは401ドルです。 23. コメントアウトを解除することができます。 明らかに、 401ドルを収納しようとすると。 23を整数にすると、 整数は整数しか保持できないので、 問題が発生しました。 だから、 0円。 23が切り捨てられ、 問題が発生する可能性があります。 なるほど。 だから、 この場合は これを実行しよう。 そして今、 ここで私の車の支払いが401ドルであることがおわかりいただけると思います。 23. なるほど。 もっと大きな数値を格納したい場合は、 doubleを使うことができますね。 今回は、 円周率を記憶しているだけです。 そしてこいつ、 πを3にハードコーディングしてるんです。 14159. 明らかにもっともっと長くなる可能性があります。 しかも今回はダブルで。 そして、 π3があることがわかると思います。 14159. また、 長い倍数を使って非常に大きな数字や非常に小さな数字を保存することもできますね。 だから、 今回は2を格納しています。 10の7乗で120乗 それはとても大きな数字です。 そして、 それをこの大きな金額の変数に格納して、 表示するんだ。 では、 ビルドして実行してみましょう。 そして、 2を見ることができます。 10の120乗の7倍は、 とても大きな数字です。 実際に正しく保存されているのがわかると思います。 最後に紹介するのは、 Boolean型です。 Boolean 型は、 true false の値である。 だから今回は、 それをコメントアウトします。 ゲームオーバーという変数を持っているのがわかると思います。 ここではcorrect_styleを使わせていただきます。 game over/という変数を持っていて、 この場合、 キャメルケースを使っているプロジェクトで、 マッスルメモリーが働いていることがわかると思います。 つまり、 今回はgame overという変数を持っていて、 これをfalseに初期化しているわけです。 そして、 ゲームオーバーの値を言っているのですが、 ここでフォルトをプリントアウトするかと思いきや、 Vaultをプリントアウトしません。 これは、 ゼロをプリントアウトするものです。 なぜなら、 c++に関する限り、 ゼロは偽だからです。 本当なら1がプリントアウトされるはずだ。 さて、 ここであまり目立たないオーバーフローの例を挙げますので、 コメントアウトしておきます。 ここでは、 value 1という変数と、 value 2という変数を持っています。 どちらも短い整数です。 そして、 こちらには30000、 こちらには1000を割り当てています。 その数字が、 その変数に収まるのです。 でもって、 sumという変数をもう一つ作って、 値1×値2があるんだ。 さて、 この製品は、 製品と呼ぶべきでしたか、 もう少し正確に言うと、 製品と呼びましょう。 だから、 その2つの数字の積がショートに収まらないことは分かっている。 では、 これをコンパイルしてみましょう。 30000と1000の和は、 何らかの負の数であることがわかりますね。 明らかにオーバーフローエラーです。 こういうのは慎重にね。 その2枚がそれぞれ個々にショーツに収まるかどうかを確認しますが、 製品では確かに無理です。 なるほど。 しかし、 コンパイラが私を助けてくれていることに気づいてください。 ここでは、 コンパイラの比較警告を表示しています。 ここで変換が狭まる可能性があるんですね。 コンパイラは、 起こりうる問題の予測についてかなり良い仕事をしているので、 これらの警告を無視してはいけません。 なるほど。 それでは、 このビデオを終わります。 変数の作成、 変数の初期化、 c++のプリミティブ型の使用など、 簡単な例を見ることができます。
このコースの詳細情報