異なるC言語のポインタを1つ増やす方法は何ですか?

C言語では、ポインタのインクリメント操作は、ポインタが指すデータ型に基づいて計算されます。ポインタが加算されると、それは1つ後ろに移動し、データ型のサイズ分移動します。

int型のデータを指すポインターがある場合、ポインターを1増やす操作を行うと、ポインターは後ろにsizeof(int)バイト移動します。

以下は例です。

#include <stdio.h>

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int *ptr = arr; // 将指针指向数组的第一个元素

    printf("ptr 指向的值:%d\n", *ptr); // 输出 1

    ptr = ptr + 1; // 执行指针加1操作

    printf("ptr 指向的值:%d\n", *ptr); // 输出 2

    return 0;
}

上記の例では、整数配列arrを定義し、ポインタptrを配列の最初の要素に向けます。そして、ptr = ptr + 1を実行し、ポインタを1つ進め、つまり4バイト進めます。最後に、ptrが指す値、つまり配列の2番目の要素である2を出力します。

指標の加算はバイトのオフセットに基づいて計算され、インデックス値ではないことに注意する必要があります。したがって、配列を指しているポインタに1を加えても必ずしもインデックスを1加算したわけではありません。

bannerAds