問題① 3 + 5
と "3 + 5"
はどのように違いますか?
3 + 5
は、整数定数の
3
、加算演算子(+
)、整数定数の 5
からなる計算式です。これは計算されて 8
になります。
"3 + 5"
は、文字列リテラルの “3 + 5”
であって、計算されることはありません。リテラルは「文字通りの」という意味で、ほかのものに変化しない不変なものでした。
両者の違いは、出力するときに現れてきます。
#include <stdio.h>
int main(void)
{
("%d\n", 3 + 5);
printf("3 + 5\n");
printf}
実行結果:
8
3 + 5
次のプログラムの実行結果はどうなりますか?
#include <stdio.h>
int main(void)
{
("%d\n", 5 + (-2));
printf}
今のところ、計算式の中の ( )
の意味は、コードを見やすくするとか、意図を明確にするとか、そういう効果しかありません。
掛け算や割り算が出てくると、計算の順序を示す意味があります。
ですから、(-2)
は単に「-2」という負の整数です。計算式全体としては、5 に -2
を加算しているということになります。結果は 3 です。
実行結果:
3
問題2のソースコードから、定数やリテラルと呼べるものをすべて選び出してください。
問題2のソースコードは以下のとおりです。
#include <stdio.h>
int main(void)
{
("%d\n", 5 + (-2));
printf}
定数やリテラルと呼べるものは、
の3つです。-2
は 2
の部分だけが定数であって、-
は演算子(負符号演算子)であることに注意してください。
実行結果が次のようになるプログラムを作成してください。
7 + 8 = 15
ただし、計算結果である 15 の部分は、コンピュータに計算させるようにしてください。
計算式は自分で書いて、結果はコンピュータに計算させようということです。次のように書けます。
#include <stdio.h>
int main(void)
{
("7 + 8 = %d\n", 7 + 8);
printf}
実行結果:
7 + 8 = 15
最初の式の部分はそのまま表示させるために、文字列リテラルの中に直接記述します。コンピュータに計算させるために、7 + 8
のように式を書き、計算結果を %d
変換指定子を使って出力します。
1~9 までのすべての整数を足し合わせた数を出力するプログラムを作成してください。
計算式は、演算子を繰り返し使って長く書けます。
#include <stdio.h>
int main(void)
{
("%d\n", 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9);
printf}
実行結果:
45
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |