ポインタ
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