--- title: ポインタを使った配列走査 author: kazu634 date: 2008-06-20 url: /2008/06/20/_1023/ wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4087;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - C - Programming ---
以下のプログラムは同じことをしている。
#include <stdio.h> int array[] = {4, 5, 8, 9, 8, 1, , 1, 9, 3}; void show(int array[], int num){ int i; for (i = ;i < num;i++) { printf ("%d --> %d\n", i, array[i]); } printf ("\n"); } int main(){ int index = ; int num = sizeof(array) / sizeof(array[]); show(array, num); while (array[index] != ) { index++; } printf ("Number of elements before zero %d\n", index); return(); }
#include <stdio.h> int array[] = {4, 5, 8, 9, 8, 1, , 1, 9, 3}; void show(int array[], int num){ int i; for (i = ;i < num;i++) { printf ("%d --> %d\n", i, array[i]); } printf ("\n"); } int main(){ int *array_ptr = array; int num = sizeof(array) / sizeof(array[]); show(array, num); while ((*array_ptr) != ) { array_ptr++; } printf ("Number of elements before zero %d\n", array_ptr - array); return(); }
ここで、「array_ptr – array」は「現在の添え字番号 – 0」という意味になっている。