網絡学習管理 速習C言語入門3 C exercises(8) Pointer Summary

C exercises(8) Pointer Summary

ポインタのまとめ

  1. アドレス
  2. ポインタと使用手順
  3. ポインタ配列

過去のページを参照

演習

ポインタを使ったプログラムをグループで作成する。

7-3-4-3(P245)

大きさ10の整数型配列を用意し、下図のように初期設定しなさい。

この配列を順に調べ、奇数の値のみ、別の大きさ10の整数型配列に代入しなさい。

また、配列の中身と、何個格納したかを画面表示しなさい。

zu10-12

実行結果

15
45
9
71
37
格納個数 = 5

ヒント:

  1. 大きさ10の整数型配列を用意し、初期設定する。
  2. 別の大きさ10の整数型配列を用意。
  3. この配列を順に調べ、奇数の値のみ、別の大きさ10の整数型配列に代入。
  4. 配列の中身と、何個格納したかを画面表示。
#include <stdio.h>

int main( void )
{
  int data1[10] = { 10, 15, 22, 45, 9, 66, 71, 4, 37, 82 };
  int data2[10], i, cnt;
  int *p1, *p2;

  cnt = 0;
  p1 = data1;          /* 配列data1のアドレスをp1に設定 */
  p2 = data2;          /* 配列data2のアドレスをp2に設定 */
  for ( i = 0; i < 10; i++ ) {
    if ( ( ( *p1 )%2 ) == 1 ) { /* p1の指す内容が奇数なら */
      ;                /* p2の指す中身に代入 */
      ;
      ;                /* ポインタp2の更新 */
      ;
    }
    p1++;	/* ポインタp1の更新 */
  }
  printf( "格納個数 = %d\n", cnt );

  return 0;
}

 

1 thought on “C exercises(8) Pointer Summary”

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


Related Post

C exercises(7) Pointer ArraysC exercises(7) Pointer Arrays

ポインタの配列 複数の文字列をchar型の2次元配列で宣言しました。それを下記に示します。 char kw[3][7] = {"double", "extern", "switch"}; 同様なものをポインタを使って宣言すると、下記のようにポインタの配列となります。 const static char *wday[ ] = { "Sunday", "Monday", "Tuesday", "Wednesday", […]

C exercises(5) AddressC exercises(5) Address

ポインタの仕組み:アドレスとは ポインタはC言語(および拡張言語)に特有の概念で、C言語を学び始めた初心者が必ずといっていいほどつまづく概念でもあります。ポインタがどうしても理解できないためにC言語に挫折してしまう方もいます。 アドレスの基本 コンピュータの記憶装置(メモリ)には、アドレスが付けられている。 変数のアドレス 変数のアドレスを取得するには変数名の前にアンパサンド “&”をつけます。 int a = 123; printf(“aのアドレス : %p\n”, &a); 配列のアドレス 配列の先頭をアドレスは、配列名だけで示します。要素のアドレスは&配列名[添字]で示します。 #include <stdio.h> int […]

C exercises(9) Basics of FunctionC exercises(9) Basics of Function

関数の基本 C言語において関数を使うことには、以下のような利点があります。 関数化しておくとそれを1つのブラックボックスとして扱うことができます。 つまり、使用する側が知っておくべきことは、以下の通りです。 入力として、どのような引数を与えるか 出力として、関数がどんな値を返すのか 関数を使ったことによって、どんな副作用があるか 一度、関数として作成しておけば、後で何度でも再利用することができる 関数として各機能をまとめていくと、一般にプログラムが見やすく、デバッグの作業もしやすい 関数の呼び出し #include <stdio.h> void func();   //関数のプロトタイプ宣言 int main() { func();    //関数呼び出し printf(" ここがメイン関数内\n"); return 0; } void func()    //自作関数 { […]