第3章

第3章
変数とデータ型
よく使われるデータ型
char
ー文字処理、文字列処理で使う
int
ー整数処理で使う
double
ー浮動小数点数処理で使う
データ型使用例
#include <stdio.h>
int main(void)
{
char
cdt;
short sdt;
int
idt;
long
ldt;
float
fdt;
double ddt;
cdt = 120;
sdt = 12345;
idt = 123456789
ldt = 987654321;
fdt = 22.33F;
ddt = 12345.6789;
printf(“char =%d\n”, cdt);
printf(“short =%d\n”, sdt);
printf(“int
=%d\n”, idt);
printf(“long =%ld\n”, ldt);
printf(“float =%f\n”, fdt);
printf(“double=%f\n”, ddt);
return 0;
}
ー%dで10進数出力指定
-%ldはlong型数値を10進数出力指定
ー%fはfloat型とdouble方を出力指定
実行結
果 char
short
int
long
float
double
=120
=12345
=123456789
=987654321
=22.330000
=12345.678900
配列の機能を見る
#include <stdio.h>
int main(void)
{
int n;
int dt[10];
dt[0] = 10;
dt[9] = 99;
n = 5;
dt[n] =55;
dt[2] = dt[9];
ーint型の普通の変数を宣言
ーint型の配列を宣言
-配列の先頭要素に値設定
-配列の末尾要素に値設定
ー変数nを使って添字指定
ー配列間で代入する
printf(“dt[0]=%d\n”,
printf(“dt[2]=%d\n”,
printf(“dt[5]=%d\n”,
printf(“dt[9]=%d\n”,
return 0;
}
dt[0]);
dt[2]);
dt[5]);
dt[9]);
実行結果
dt[0]=10
dt[2]=99
dt[5]=55
dt[9]=99
二次元配列機能を見る
#include <stdio.h>
int main(void)
{
int dt[3][5];
dt[0][0] = 111;
dt[1][3] = 555;
dt[2][4] = 999;
ー二次元配列を宣言
ー先頭の要素に設定
ー途中の要素に設定
ー末尾の要素に設定
printf(“dt[0][0] =%d\n”, dt[0][0]);
printf(“dt[1][3] =%d\n”, dt[1][3]);
printf(“dt[2][4] =%d\n”, dt[2][4]);
return 0;
}
実行結果
dt[0][0]=111
dt[1][3]=555
dt[2][4]=999
char型配列による文字列の表
#include
<stdio.h>
現
#include <string.h> /* for strcpy( ) */
int main(void)
{
char ss[10];
strcpy(ss, ”abcde”);
printf(“%s\n”, ss);
return 0;
}
ー文字型配列を宣言する
ー変数ssに文字列”abcde”を設定する
-変数ssで示す文字列を表示する
実行結果
abcde
文字と文字列との関係
#include <stdio.h>
#include <string.h>
/* for strcpy( ) */
int main(void)
{
char ss[4];
-char型配列確保
ss[0] = ‘A’;
配列の各要素に文字をひとつずつ入れていく
ss[1] = ‘B’;
ss[2] = ‘C’;
ss[3] = 0;
-最後にゼロを入れる
printf(“%s\n”, ss); ー文字列として出力する
strcpy(ss, “XYZ”);
printf(“%s\n”, ss[0]);
printf(“%s\n”, ss[1]);
printf(“%s\n”, ss[2]);
printf(“%s\n”, ss[3]);
return 0;
}
ー文字列”XYZ”を設定する
配列の各要素の値をひとつ
ずつ出力していく
実行結果
ABC -個別に設定したが文字列として出力でき
る
88
89
90
0
文字列として設定したも
ー’X’の文字コード(10進) のを個別に出力できる
-’Y’の文字コード
-’Z’の文字コード
ー終端の文字0
文字列とナル文字の関係を見る
#include <stdio.h>
#include <string.h>
/* for strcpy( ) */
int main(void)
{
char ss[10];
strcpy(ss, “abcdefg”);
ー文字列を設定する
printf(“文字列は[%s]\n”, ss); ー文字列を出力
ss[3] = ‘\0’;
ーss[3]をナル文字にする
printf(“文字列は[%s]\n, ss); ー文字列を出力
ss[3] = ‘X’;
ーss[3]をナル文字にする
printf(“文字列は[%s]\n, ss); ー文字列を出力
ss[0] = ‘\0’;
ー先頭にナル文字を設定する
printf(“文字列は[%s]\n, ss); ー文字列を出力
return 0;
}
実行結果
文字列は[abcdefg]
文字列は[abc]
文字列は[abcxefg]
文字列は[ ]
練習問題1
実行結果
合計値=600
解答例
#inclede <stdio.h>
int main(void)
{
int dt[3] = {100, 200, 300};
int sum,
sum = dt[0] + dt[1] + dt[2];
printf(“合計値 =%d\n”, sum);
return 0;
}
練習問題2
実行結果
文字列は=ABCDE
最初の文字は=A
最初の文字コードは=65
最後の文字は=E
最後の文字コードは=69
解答例
#include <stdio.h>
int main(void)
{
char ss[80] = “ABCDE”;
printf(“文字列は =%s\n, ss);
printf(“最初の文字は =%c\n, ss[0]);
printf(“最初の文字コードは =%d\n, ss[0]);
printf(“最後の文字は =%c\n, ss[4]);
printf(“最後の文字コードは =%d\n, ss[4]);
return 0;
}