質問1-----------------------------------------
#include<stdio.h>
int main()
{
int a;
char b[10];
for(int i = 0;i < 2;i++){
scanf("%d",&a);
printf("整数%d\n",a);
}
scanf("%s",b);
printf("文字列%s\n",b);
}
/*
この際に、例えばabと入力すると結果が
整数-858993460
整数-858993460
文字列ab
となり整数入力を無視して進められるのはなぜでしょうか?
*/
質問2-----------------------------------------
#include<stdio.h>
void func(int**);
int main()
{
int *p;
func(&p);
printf("%d",*p);
}
void func(int **pp)
{
int n = 10;
*pp = &n;
}
/*
func関数のnはスコープからはずれて変数の寿命がなくなるはずなのにprintfで表示されるのはなぜでしょうか?
*/
----------------------------------------------
C言語は一冊の本とネットの入門サイトをかじった程度の理解です。
No.3
- 回答日時:
上の方だけ #1 の補足:
scanf の仕様で「変換できなかったら無視して終了」です. 「ab」という入力は整数にできないので, この入力は見なかったことにして scanf は返ってきます. 当然, 入力に残ったままなので結果的に「無視された」ように見えます.
このことは scanf の返り値をちゃんと確認すればわかる.
No.2
- 回答日時:
>質問1
&a は何を指しているのでしょうか?
C言語は一冊の本にaのアドレスとと書かれていませんでしょうか?
すなわちコンパイルじに変数aに割りつけられたアドレスそのものです。
>質問2
>寿命がなくなるはず
なんで?
必ず &n すなわち変数nのアドレスが返されます。
参考までに
http://www9.plala.or.jp/sgwr-t/c/sec10-2.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
C言語でgetchar();が上手く使え...
-
scanfでの可変引数
-
Eclipseでコマンドラインを入力...
-
ワードで文字を入力する時の変...
-
C言語 入力した値から0までの数...
-
if文の条件にscanf関数を使うと…?
-
*をユーザーが入力した数字の数...
-
Yesならこっちへ、NOなら...
-
数字以外が入力されたらエラー...
-
プログラムの進行が一時ストッ...
-
UWSCで変数をキー入力
-
scanf の%10s について
-
fflush(stdin)の使い方とprintf...
-
C++ scanfで止まらない
-
漢字のソートについて
-
java 入力された文字列を数値に...
-
VBでの日付入力値のフォーマッ...
-
プログラミングの問題です 「金...
-
最大公約数と最小公倍数を求め...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
C言語 逆ピラミッドの作り方
-
double型が正常に認識されてい...
-
ワードで文字を入力する時の変...
-
コマンドプロンプトからのEOFの...
-
Linuxで入力待ちなしkeyread関...
-
scanf が無視されます
-
if文の条件にscanf関数を使うと…?
-
C言語について
-
cout関数を使っているのですが...
-
enterでループ終了
-
"scanf"でエンターで改行させな...
-
C言語でgetchar();が上手く使え...
-
C言語scanf_sで何故か2回入力に...
おすすめ情報