Home / 記事 / プログラム言語 / C / 第 1 章 : C言語入門 始めに(書籍のプレビュー) / 代入時の型変換

e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。

オンライン書籍; インド式プログラミングバイブル C言語入門 (上)

第 1 章 : C言語入門 始めに(書籍のプレビュー)

インド式プログラミングバイブル     C言語入門
インド式プログラミングバイブル C言語入門


この記事は、2008年4月から発売の「インド式プログラミングバイブル C言語入門 (上)」より掲載しました。書籍の情報は、こちらをご覧ください

代入時の型変換

場合によっては、式の型と、代入演算子の左側にある変数の型が一致しないこともあります。このような場合には、式の値が=の左側の変数型に合わせて、自動的に昇格もしくは降格されます。

例えば、次のような代入命令文を見てみましょう。
int i ;
float b ;
i = 3.5 ;
b = 30 ;

ここでの最初の代入文では、式の値がfloat(3.5)になりますが、これはintであるiに格納することができません。このような場合には、floatがintに自動的に降格され、それから値が格納されます。つまり、iに格納される値は、3になります。次の代入文では、これとまったく反対のことが行われます。次の文では、float変数であるbには浮動小数値しか格納できないため、30は30.000000に昇格されてからbに格納されます。

上記の例のような簡単な式だけでなく、複雑な式の場合にも、同様の規則が適用されます。例えば、次のようなプログラムの一部を見てみましょう。
float a, b, c ;
int s ;
s = a * b * c / 100 + 32 / 4 - 3 * 1.1 ;

この例の代入文では、オペランドにintとfloatが混在しています。すでに説明した通り、式の答えを求める過程で、intはfloatに昇格され、その結果はfloatとなります。しかし、このfloat値をsに代入する時には、再度intに昇格降格され、sに格納されます。

図1.7に示される、各算術式の結果を、しっかりと理解してください。ここでは、kが整数値、aが実数値とします。

算術命令

結 果

算術命令

結 果

k = 2 / 9 0 a = 2 / 9 0.000000
k = 2.0 / 9 0 a = 2.0 / 9 0.222222
k = 2 / 9.0 0 a = 2 / 9.0 0.222222
k = 2.0 / 9.0 0 a = 2.0 / 9.0 0.222222
k = 9 / 2 4 a = 9 / 2 4.000000
k = 9.0 / 2 4 a = 9.0 / 2 4.500000
k = 9 / 2.0 4 a = 9 / 2.0 4.500000
k = 9.0 / 2.0 4 a = 9.0 / 2.0 4.500000
図 1.7

次の式では結果は同じになりますが、その値の0は、異なる過程によって求められることに注意してください。
k = 2 / 9 ;
k = 2.0 / 9 ;

最初の式では、2と9は両方整数であり、結果も整数(この場合0)になります。その0が、その後にkに代入されます。次の式では、9が9.0に昇格され、その後に除算が実行されます。除算の結果は、0.222222となります。しかし、kはintであるため、これをkに格納することはできません。このため、0.222222は0に降格され、その後にkに格納されます。

コメント

コメントするにはログイン、もしくはユーザ登録を行ってください。

発売中

LET US C(上)
インド人ITエンジニアのCプログラミングのバイブル。通算100万冊以上売れています。
― 2,520円 ―

Y. Kanetkar

発売中

Introduction to Object Oriented Programming & C++
C++を例に、多彩なサンプルコードと簡潔な説明でOOPプログラミングの実際が理解できる。
2,940

Y. Kanetkar

発売中

Microsoft .NET Web Application Security
APプログラムの作り方で不正侵入の防御率を向上させる手法を解説。今までにないセキュリティーの手法を紹介します。
3,990円

Vijay Mukhi

2008年の11月発売予定

Quest C++ ビジュアルラーニングコース
これがあれば、見て聞くだけで楽しみながらプログラミングテクニックが身につきます。
― 9,975円 ―

Y. Kanetkar Asang Dani

2008年の11月発売予定

Programmer's Guide to Web Application Security
Web System への侵入方法と原理を解説する事により、防止方法を理解することが出来る。
3,990

Vijay Mukhi

フォーラムの最新ポスト