C言語を使ったマイコン制御プログラムの“イロハ”を解説する本連載。今回はC言語の難所の1つ、ポインタに関する問題を解説していきます。
本連載では、これから組み込みシステムのプログラミングを学びたい人向けに、C言語を使ったマイコン制御プログラムの“イロハ”を解説していきます。
毎回少しずつステップアップしていけるよう、本文の最後で問題を出し、次回その解答と解説を紹介していきます。では早速、前回の問題を振り返ってみましょう。
負数が入力されるまで繰返し整数を入力し、負数が入力されたならばLIFO(後入れ先出し)の順番で、入力された整数を表示するプログラムを、添字ではなくポインタを使って書いて下さい。
おかげさまでこの連載も10回目となりました。今回はC言語の難所の1つ、ポインタに関する問題です。
問題9は、前回の配列に関する問題「LIFO(後入れ先出し)の順番で、入力された整数を逆順に表示する」を、ポインタを使ってプログラムを作る問題でした(完全マスター! 組み込みC言語プログラミング(9):【問題8】繰返しと配列は相性がいい)。実は、C言語の配列とポインタは関係が深く、具体的には、
があります。
それでは解答を発表しましょう。
#include <stdio.h> int main(void) { int n, data[100], *p; printf("数を入力してください->"); scanf("%d", &n); p = data; while (n >= 0) { *p = n; p++; printf("数を入力してください->"); scanf("%d", &n); } while (p > data) { p--; printf("%d\n", *p); } }
lifo3.cを実行すると、次のような結果になります。
Copyright © ITmedia, Inc. All Rights Reserved.