FC2ブログ

数値 int n;
1.ポインタの宣言 int *p;
2.アドレスの代入 p = &n;
3.値の代入 *p = 1.1;

配列 int a[10];
1.ポインタの宣言 int *p
2.アドレスの代入 p = a;
3.値の代入 *p = 100;

文字列 char s[10];
1.ポインタの宣言 char *p;
2.アドレスの代入 p = s;
3.値の代入 p = "Hello";

ポインタと配列 アドレス
配列aのアドレス(1) &a[0] &a[1] &a[2] &a[3] &a[4]
配列aのアドレス(2) a a + 1 a + 2 a + 3 a + 4
ポインタpのアドレス p p + 1 p + 2 p + 3 p + 4

ポインタと配列 値
配列aの値(1) a[0] a[1] a[2] a[3] a[4]
配列aの値(2) *a *(a + 1) *(a + 2) *(a + 3) *(a + 4)
ポインタpの値(1) p[0] p[1] p[2] p[3] p[4]
ポインタpの値(2) *p *(p + 1) *(p + 2) *(p + 3) *(p + 4)


ポインタを使用してみる

#include <stdio.h>

int main(void){

int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *p;

// ポインタに配列のアドレスを格納 &a[0]と同じ
p = a;
printf("ポインタに配列のアドレスを格納 &a[0]と同じ\n");
printf("ポインタ:%d\t配列:%d\n\n", *p, a[0]);

// ポインタの指すアドレスを変えないで、値を参照
printf("ポインタの指すアドレスを変えないで、値を参照\n");
printf("ポインタ:%d\t配列:%d\n", *(p + 4), a[4]);
printf("ポインタ:%d\t配列:%d\n\n", p[4], a[4]);

// ポインタの指すアドレスを変えて、値を参照
p = p + 4;
printf("ポインタの指すアドレスを変えて、値を参照\n");
printf("ポインタ:%d\t配列:%d\n", *p, a[4]);
printf("ポインタ:%d\t配列:%d\n", *(p + 4), a[4]);
printf("ポインタ:%d\t配列:%d\n", p[4], a[4]);

return 0;
}

結果
ポインタに配列のアドレスを格納 &a[0]と同じ
ポインタ:1 配列:1

ポインタの指すアドレスを変えないで、値を参照
ポインタ:5 配列:5
ポインタ:5 配列:5

ポインタの指すアドレスを変えて、値を参照
ポインタ:5 配列:5
ポインタ:9 配列:5
ポインタ:9 配列:5


参考URL
ささら庵:プログラム:C++:ポインタ篇

一言
ムズ
スポンサードリンク : 
Category : 
Tags : 
Next : 
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS