C言語講座第ニ回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#mathjax
[[C言語講座]]
#markdown{{
#第2回
##式
C言語では一度に実行できる命令を式といいます。
具体的にはこの後にある宣言式や代入式などです。
ここで重要なのは式は;で終わらなければならにということです。
ちなみにC言語において改行は空白と同じ意味です。
たとえば
int i
i=0;
は一つの式となり同時に実行できない宣言式と代入式なのでエ...
##変数
プログラムにおいて何かを記憶しておかなければならないとい...
コンピュータではメモリに記憶しますが、プログラムでは記憶...
ここで宣言されたメモリ上の記憶領域を変数といいます。
*つまり何かを記憶したいと思ったら、変数を宣言する必要があ...
###変数の宣言
ではC言語において変数の宣言方法です。
型 変数名;
まずはこれだけ覚えておきましょう。
ちなみに
型 変数名1,変数名2...
とすると一度に同じ型の変数を複数作ることができます。
###型
変数に記憶できるものは結局のところ0と1のビット列でしかあ...
そこでコンピュータは0と1の組み合わせで様々なものを表しま...
ところで次を見てください。
11100111101101000010111110111000
このビット列は整数とすると-407621720 実数とすると1.1とな...
そこで変数に型をつけることでその変数が何であるかを指定し...
####型の種類
型としては以下のものがあります。
型名|表せる範囲|一般的な使用バイト|用途
----|---------|---|-
char|-128~127|1|文字を表す。
short int|-32768~32767|2|整数を表す
int|-2147483648~2147483647|4|整数を表す
long int|-2147483648~2147483647|4|整数を表す
float|$\pm 3.4 * 10^{-38} ~ 3.4*10^{38} $|4|浮動小数点を...
double|$\pm 1.7 * 10^{-308} ~ 1.7*10^{308} $|8|浮動小数...
long double|$\pm 3.4 * 10^{-4932} ~ 1.1*10^{4932} $|10|...
ここで浮動小数点について補足しておきます。
コンピュータはすべてが有限なもので作られています。
そのため無限な実数を表すには無理があり、ある程度妥協した...
あまりに大きな数や小さな数は表せません。
基本的にchar,int,doubleを使っていけばいいでしょう。
###代入
これで変数を作ることができました。
しかし変数の中身は空っぽです。
そこで変数の中身を指定しましょう。
変数名 = 値;
これで変数の中身が値となります。
このように変数の中身を変更することを代入といいます。
###初期化
変数を宣言したときその中身は不定です。
0であることが多いですが家臣はできません。
そこで変数は宣言と同時に中身を決めることができます。
型 変数名 = 値;
こうすることで変数を宣言すると同時に中身を決めることがで...
例
int i = 5;
これでint型の変数iが5を記憶した状態で宣言されました。
当然ながら
int i=5,j=6;
のようにすると一度に複数初期化できます。
###算術演算子
変数は数字ですから当然計算することができます。
C言語における四則演算は次のようになっています。
int i,j
とすると
足し算:
i=i+j;
引き算:
i=i-j;
掛け算:
i=i*j;
割り算:
i=i/j;
このようにするとそれぞれの計算結果がiに入ります。
また代入する値は決まった数字ではなく、式を書くことができ...
C言語で使える演算子は以下のとうりです。
記号|説明
-|-
+|加算
-|減算
*|乗算
/|除算
%|あまり
<<|左シフト
>>|右シフト
&|ビットAND
\||ビットOR
^|ビットXOR
###代入演算子
自分自身の値を使って自分を更新する。つまり
i=i+j;
のような状況では、演算と代入を一緒にすることができます。
i+=j;
演算子の数だけ用意されており以下のようになっています。
記号|説明
-|-
+=|加算
-=|減算
*=|乗算
/=|除算
%=|あまり
<<=|左シフト
>>=|右シフト
&=|ビットAND
\|=|ビットOR
^=|ビットXOR
###比較
変数は別の変数や数字と比較することができます。
その際比較が正しい場合は0以外、間違っている場合は0が値と...
例
int i=1,j=2,k;
k=i==j;
この時kは0になります。
比較演算子は以下のとうりです。
記号|説明
----|---
<|左より右が大きい
>|左より右が小さい
<=|左が右以上
>=|左が右以下
==|左と右は等しい
!=|左と右は異なる
比較した結果はつなげることができます。
たとえば
i==k&&j==g
とした場合i==kとj==gはどちらも正でなければ正になりません。
しかし
i==k||j==g
とした場合i==kかj==gのどちらかが正なら正になります。
###型変換
ある型の変数を別の型に変換することが出来ます。
(変数の型)値
とすると値がカッコ内の変数の型に変換されます。
また数値型については省略することが可能です。
ここで気をつけなければならないのが、ただしく変換できると...
例えばint型からdouble型に変換してもきちんと変換されますが...
たとえば
int i=5,j=10;
i= i/j;
とすると0.5は表せずiは0になります。
###その他
()でくくることもできます。その場合後に説明する優先規則...
変数名++;
とするとその変数に1加算されます。これをインクリメントとい...
逆に
変数名--;
とするとその変数から1引かれます。これをデクリメントといい...
sizeof(変数名)とするとその変数がメモリ上でどのくらいの...
###優先順位と結合規則
数学では乗除算は加減算より先に計算しなければなりませんで...
C言語でも同じように演算子には優先順位が設定されています。
また数学では基本的に左から右へ計算していきました。
C言語でも先にどちらを実行するかが決められています。
たとえば
a=b=c=d=0;
とすると
d=0
c=d
b=c
a=b
の順で実行されます。
各演算子における優先順位と結合規則は以下のとうりです。表...
演算子|種類|結合規則
-----|---|-------
() [] . ->|式|左から右
! * & ++ -- + - sizeof(cast)|単項演算子|右から左
* / %|乗除|左から右
+ -|加減|左から右
<< >>|シフト|左から右
< > <= >= == != & ^ \||比較 等価 ビットAND ビットOR ビ...
&&|論理積|左から右
\|\||論理和|左から右
= *= /= %= -= += <<= >>= &= \|= ^=|代入演算子|右から左
,|カンマ演算子|左から右
##演習
変数を出力するためには
printf("%d\n",変数名);
とします。
1. int型の変数i,j,kを作りそれぞれ4,58,546を代入し出力せよ。
2. 先ほどのi,j,kの合計をlに代入し出力せよ。
3. 以下の式の実行順序を説明せよ。
```
int i=5;
i+= (8+5*2)+(6<=i||3==i&&4>i)*2%1;
```
4. 以下の出力が0になる理由を説明せよ。
```
int i=4,j=50;
i=4/50;
printf("%d\n",i);
```
}}
[[C言語講座第ニ回課題]]
#comment
終了行:
#mathjax
[[C言語講座]]
#markdown{{
#第2回
##式
C言語では一度に実行できる命令を式といいます。
具体的にはこの後にある宣言式や代入式などです。
ここで重要なのは式は;で終わらなければならにということです。
ちなみにC言語において改行は空白と同じ意味です。
たとえば
int i
i=0;
は一つの式となり同時に実行できない宣言式と代入式なのでエ...
##変数
プログラムにおいて何かを記憶しておかなければならないとい...
コンピュータではメモリに記憶しますが、プログラムでは記憶...
ここで宣言されたメモリ上の記憶領域を変数といいます。
*つまり何かを記憶したいと思ったら、変数を宣言する必要があ...
###変数の宣言
ではC言語において変数の宣言方法です。
型 変数名;
まずはこれだけ覚えておきましょう。
ちなみに
型 変数名1,変数名2...
とすると一度に同じ型の変数を複数作ることができます。
###型
変数に記憶できるものは結局のところ0と1のビット列でしかあ...
そこでコンピュータは0と1の組み合わせで様々なものを表しま...
ところで次を見てください。
11100111101101000010111110111000
このビット列は整数とすると-407621720 実数とすると1.1とな...
そこで変数に型をつけることでその変数が何であるかを指定し...
####型の種類
型としては以下のものがあります。
型名|表せる範囲|一般的な使用バイト|用途
----|---------|---|-
char|-128~127|1|文字を表す。
short int|-32768~32767|2|整数を表す
int|-2147483648~2147483647|4|整数を表す
long int|-2147483648~2147483647|4|整数を表す
float|$\pm 3.4 * 10^{-38} ~ 3.4*10^{38} $|4|浮動小数点を...
double|$\pm 1.7 * 10^{-308} ~ 1.7*10^{308} $|8|浮動小数...
long double|$\pm 3.4 * 10^{-4932} ~ 1.1*10^{4932} $|10|...
ここで浮動小数点について補足しておきます。
コンピュータはすべてが有限なもので作られています。
そのため無限な実数を表すには無理があり、ある程度妥協した...
あまりに大きな数や小さな数は表せません。
基本的にchar,int,doubleを使っていけばいいでしょう。
###代入
これで変数を作ることができました。
しかし変数の中身は空っぽです。
そこで変数の中身を指定しましょう。
変数名 = 値;
これで変数の中身が値となります。
このように変数の中身を変更することを代入といいます。
###初期化
変数を宣言したときその中身は不定です。
0であることが多いですが家臣はできません。
そこで変数は宣言と同時に中身を決めることができます。
型 変数名 = 値;
こうすることで変数を宣言すると同時に中身を決めることがで...
例
int i = 5;
これでint型の変数iが5を記憶した状態で宣言されました。
当然ながら
int i=5,j=6;
のようにすると一度に複数初期化できます。
###算術演算子
変数は数字ですから当然計算することができます。
C言語における四則演算は次のようになっています。
int i,j
とすると
足し算:
i=i+j;
引き算:
i=i-j;
掛け算:
i=i*j;
割り算:
i=i/j;
このようにするとそれぞれの計算結果がiに入ります。
また代入する値は決まった数字ではなく、式を書くことができ...
C言語で使える演算子は以下のとうりです。
記号|説明
-|-
+|加算
-|減算
*|乗算
/|除算
%|あまり
<<|左シフト
>>|右シフト
&|ビットAND
\||ビットOR
^|ビットXOR
###代入演算子
自分自身の値を使って自分を更新する。つまり
i=i+j;
のような状況では、演算と代入を一緒にすることができます。
i+=j;
演算子の数だけ用意されており以下のようになっています。
記号|説明
-|-
+=|加算
-=|減算
*=|乗算
/=|除算
%=|あまり
<<=|左シフト
>>=|右シフト
&=|ビットAND
\|=|ビットOR
^=|ビットXOR
###比較
変数は別の変数や数字と比較することができます。
その際比較が正しい場合は0以外、間違っている場合は0が値と...
例
int i=1,j=2,k;
k=i==j;
この時kは0になります。
比較演算子は以下のとうりです。
記号|説明
----|---
<|左より右が大きい
>|左より右が小さい
<=|左が右以上
>=|左が右以下
==|左と右は等しい
!=|左と右は異なる
比較した結果はつなげることができます。
たとえば
i==k&&j==g
とした場合i==kとj==gはどちらも正でなければ正になりません。
しかし
i==k||j==g
とした場合i==kかj==gのどちらかが正なら正になります。
###型変換
ある型の変数を別の型に変換することが出来ます。
(変数の型)値
とすると値がカッコ内の変数の型に変換されます。
また数値型については省略することが可能です。
ここで気をつけなければならないのが、ただしく変換できると...
例えばint型からdouble型に変換してもきちんと変換されますが...
たとえば
int i=5,j=10;
i= i/j;
とすると0.5は表せずiは0になります。
###その他
()でくくることもできます。その場合後に説明する優先規則...
変数名++;
とするとその変数に1加算されます。これをインクリメントとい...
逆に
変数名--;
とするとその変数から1引かれます。これをデクリメントといい...
sizeof(変数名)とするとその変数がメモリ上でどのくらいの...
###優先順位と結合規則
数学では乗除算は加減算より先に計算しなければなりませんで...
C言語でも同じように演算子には優先順位が設定されています。
また数学では基本的に左から右へ計算していきました。
C言語でも先にどちらを実行するかが決められています。
たとえば
a=b=c=d=0;
とすると
d=0
c=d
b=c
a=b
の順で実行されます。
各演算子における優先順位と結合規則は以下のとうりです。表...
演算子|種類|結合規則
-----|---|-------
() [] . ->|式|左から右
! * & ++ -- + - sizeof(cast)|単項演算子|右から左
* / %|乗除|左から右
+ -|加減|左から右
<< >>|シフト|左から右
< > <= >= == != & ^ \||比較 等価 ビットAND ビットOR ビ...
&&|論理積|左から右
\|\||論理和|左から右
= *= /= %= -= += <<= >>= &= \|= ^=|代入演算子|右から左
,|カンマ演算子|左から右
##演習
変数を出力するためには
printf("%d\n",変数名);
とします。
1. int型の変数i,j,kを作りそれぞれ4,58,546を代入し出力せよ。
2. 先ほどのi,j,kの合計をlに代入し出力せよ。
3. 以下の式の実行順序を説明せよ。
```
int i=5;
i+= (8+5*2)+(6<=i||3==i&&4>i)*2%1;
```
4. 以下の出力が0になる理由を説明せよ。
```
int i=4,j=50;
i=4/50;
printf("%d\n",i);
```
}}
[[C言語講座第ニ回課題]]
#comment
ページ名: