ポインタ

cのポインタのサンプル

#include <stdio.h>
int main(void){
    int iv[] = {1000,2000};
    int * ip = &iv[0];
    for (int i=0; i<sizeof(iv)/sizeof(iv[0]);i++){
        printf("ipの値は%d\n", *(ip++)); // ここでアドレスの値を加算
        printf("ipのアドレスは%p\n", ip);
    }
    printf("----------------------------------------------\n");
    char c1[] = "abc";
    printf("c1=%s\n", c1);
    for (int i=0;i<sizeof(c1);i++){
        printf("c[%d]=%c\n", i, c1[i]);
        printf("c[%d]pointer=%p\n", i, &c1[i]);
    }
    printf("----------------------------------------------\n");
    char * cp[] ={"aaa","bbb","ccc"};
    for(int i=0;i<sizeof(cp)/sizeof(cp[0]);i++){
        printf("cp[%d]=%s\n", i, cp[i]);
        printf("cp[%d]pointer=%p\n", i, cp[i]);
    } 
}

実行結果は

ipの値は1000
ipのアドレスは0x7fff6ea40bd8
ipの値は2000
ipのアドレスは0x7fff6ea40bdc
----------------------------------------------
c1=abc
c[0]=a
c[0]pointer=0x7fff6ea40bc0
c[1]=b
c[1]pointer=0x7fff6ea40bc1
c[2]=c
c[2]pointer=0x7fff6ea40bc2
c[3]=
c[3]pointer=0x7fff6ea40bc3
----------------------------------------------
cp[0]=aaa
cp[0]pointer=0x10ee41f45
cp[1]=bbb
cp[1]pointer=0x10ee41f49
cp[2]=ccc
cp[2]pointer=0x10ee41f4d