【独学C言語】ポインタと配列

※この記事は「2020年12月19日」に更新しました。

前回のポインタの続きです。

ちなみに前回の記事です。

【独学C言語】ポインタとは

【独学C言語】ポインタとは

2020年5月1日

今回はポインタと配列について、解説していきます。

ポインタと配列

ポインタとは、変数のアドレスを記憶するための変数でした。

メモリの物理的な位置を示しています。

配列は、同じサイズのデータがメモリ上に連続して格納されています。

これを利用すれば、例えば、先頭要素のアドレスを関数に渡すことで、配列の全ての要素にアクセスすることが可能になります。

C言語では、ポインタと配列が密接な関係にあります。

さらに、C言語は、配列を関数に渡すことができません。

つまり、配列のポインタを渡すしかないのです。

サンプルプログラム【C言語】

ポインタと配列を理解するためのサンプルプログラムです。

sample.c というソースファイルを作成します。

#include <stdio.h>

#define STR_SIZE 256

int str_length(char *);

int main(void)
{
    char str[STR_SIZE];

    printf("\n");

    printf("Input string : ");
    scanf("%s", &str[0]);

    printf("\n");

    printf("String length : %d", str_length(&str[0]));

    printf("\n\n");

    return 0;
}

int str_length(char *p_str)
{
    int length;

    for(length = 0 ; *(p_str + length) != '\0' ; length++);

    return length;
}

このサンプルプログラムは、ポインタと配列を理解するためのものです。

最大 255文字までの入力を想定して、文字列を入力する配列を用意しています。

文字列の長さを返す関数 str_length を作成しています。

これは、引数に str の先頭アドレスを渡しています。

ポインタ変数(p_str)に整数値を加算することで配列の各要素にアクセスすることができます。

今回は、\0 になるまでインクリメントしています。

実行結果は以下の通りです。

ポインタと配列

独学C言語の記事について【おまけ】

タカフミブログの独学C言語シリーズは、C言語を独学するということを目的に記事を書いています。

他の記事に興味がある方は以下をご参照下さい。

C言語に関する記事一覧

C言語は、古典的なイメージがある方もいるかもしれませんが、他の多くのプログラミング言語のベースになっています。

実際に本格的なソフトを開発するとなるとなかなか大変ですが、とにかくハードウェアのリソースが少なくても高速に動くのが最大のメリットです。

プログラマーや SE(システムエンジニア)を目指す方は一度お試し下さい。

最後に【ポインタと配列について】

いかがでしょうか。

今回は、ポインタと配列について、紹介しました。

次回は、構造体について、解説していきます。

【独学C言語】構造体とは

【独学C言語】構造体とは

2020年5月5日

配列の先頭アドレスを引数として渡すことで、関数は全ての配列の要素にアクセスすることが可能になります。

ポインタを扱うときは演算子の優先順位にも注意が必要です。

正しい順番で演算が行われないと、大変なことにもなりかねません。