type casting: 型キャスト,型変換
上智大学 伊藤 潔
2013年1月4日
type castingは,「型キャスト,型変換」と訳されます.
そもそも,castは,「(ある方向に向けて)投げる」という意味を持ちます.
演劇や映画などでcastig
「配役」は,俳優を役に割り当てることです.
broadcastは「放送」です.broadcaster,あるいは約めてcasterは,情報を視聴者に向けて送る,投げる人のことです.
die casting 「鋳造(ちゅうぞう)」は,die 「金型」に溶融物を流し込んで鋳物(いもの)を造る方法です.
type casting が,die castingを意識して類推したのか,あるいは,castの持つ意味から,自然と普通に作られたのかどうかは,わかりませんが,castの意味を味わうと,type castingが,「型変換」の意味を持つことがよくわかります.
変数(☞ 式(expression)と代入(assignment))やリテラル(☞ literature,
literacy, literal:)は,それが持つ値について,type:
型 を有します.整数型,実数型,文字型などです.これらが計算で使われるとき,型の異なるものが混じっているとき,型を同じにするために.type castingは,「型キャスト,型変換」が行われます.
暗黙的な
(implicit)型変換は,式の中で整数型,実数型が混じっている時は,実数型に変換すること,また,単精度と倍精度の型が混じっているときは,倍精度の型に変換することです.代入文の左辺の変数の型と右辺の式の値の型が異なる時は,右辺の型を左辺の型に変換します.C言語のプログラム例で見ます.
int m,n;
float x,y;
m と n が整数型,x と y が実数型です.
m = n+1; は,type
castingは起きません.
x = n+1; は,n+1 の値が整数型なので,実数型 x への代入の際に,n+1 の値が実数型 x へtype
castingされます.
x = n+2.3; は,n+2.3 の n が実数型にtype
castingされて,n+2.3の値が実数型になり,その型のまま,実数型xへ代入されます.
y = x*2.5; は,type
castingは起きません.
y = x+3; は,x+3の 3 が実数型にtype castingされて,x+3が実数型になり,その型のまま,実数型
x へ代入されます.
y=m+5; は,m+5はtype castingされず,そのまま整数型で計算されますが,実数型 y
への代入の際に,m+5の値が実数型 x へtype castingされます.
明示的な(explicit)型変換は,必要な部分にtype castingを明示的に示します.
C言語のプログラム例で見ます.
/1/ #include
<stdio.h>
/2/
main(){
/3/
int
score[300];
/4/
int
i,n;
/5/ int
sum;
/6/
float
average;
/7/
printf("Please input the number of students (n)
=?, s.t. 1=<n<=300 ");
/8/
scanf("%d",&n);
/9/
sum=0;
/10/
for
(i=0;i<n;i++){
/11/
printf("data[%d]=?",i);
/12/
scanf("%d",&score[i]);
/13/
sum=sum+score[i];
/14/
}
/15/
printf("sum=%d
\n",sum);
/16/
average=(float)sum/n;
/17/
printf("average=%f\n",average);
/18/
printf("average=%d\n",(int)average);
/19/
}
/30/
Please input the number of students (n)
=?, s.t. 1=<n<=300
3
/31/ data[0]=?
13
/32/ data[1]=?
2
/33/ data[2]=?
5
/34/ sum=20
/35/ average=6.666667
/36/ average=6
これは,n 人の試験データの和を求めて,その平均点を求めるプログラムです.
16行目が示すことは,sum が元々持っていた整数型の値を実数型に流し込む,変換するということ,その実数化された値を
n で割れば,実数の平均値 average が,35行目の通り得られることです.
18行目が示すことは,average が持っていた実数型の値を整数型に流し込む,変換するということ,その整数化された値を,36行目の通り表示することです.
type casting |
型キャスト,型変換 | ||
cast |
(ある方向に向けて)投げる | ||
castig |
配役 | ||
broadcast | 放送 | ||
broadcaster, caster |
|||
die castingは, | 鋳造(ちゅうぞう) | ||
die | 「金型」 | ||
implicit | 暗黙的な | ||
explicit | 明示的な | ||
type | 型 | ||