アットウィキロゴ

配列とポインタ

  • 配列の配列変数をポインタ変数に代入する
    #include<stdio.h>
    main()
    {
    	int iary[] = {1,2,3};
    	int *ip;
     
    	ip = iary;
     
    	printf("配列変数で見ると %d\nポインタ変数で見ると %d\n",iary[0],*ip);
     
    }
  • ポインタ変数の加算
    #include<stdio.h>
    main()
    {
    	int iary[] = {1,2,3};
    	int *ip;
     
    	ip = iary;
     
    	ip = ip + 2;//ポインタ変数の加算
     
    	//ポインタ変数の指すアドレスの値を見る
    	printf("配列の先頭 %d\n加算したポインタ変数で見ると %d\n",iary[0],*ip);
     
    	//ポインタ変数の値(アドレス)を見る
    	printf("0番目のアドレス %p\n1番目のアドレス %p\n\
    2番目のアドレス %p\n加算されたポインタ変数の値は %p\n"
    ,&iary[0],&iary[1],&iary[2],ip);
     
    }

演習

  • double型の配列を代入したポインタ変数の加算の様子を調べよ
  • char型の配列を代入したポインタ変数の加算の様子を調べよ
  • 配列の先頭アドレスが代入されているポンタ変数ipを用いて*(ip+1)は,何を意味するか調べよ

型の違うポインタ変数に代入すると

#include<stdio.h>
main()
{
 
	unsigned int iary[] = {100,101,102};
	char *ip;
 
	ip = iary;
	//ip = ip + 1;
 
	printf("%p, %p, %c\n",iary,ip,*ip);
 
}
最終更新:2012年05月16日 12:06