5.1 ポインタとアドレス K&R プログラミング言語C
2010年01月29日
5.1 ポインタとアドレス
ポインタの算術演算例
#include <stdio.h> int main(void) { int x = 5; int *ip; ip = &x; printf("*ip => %d\n", *ip); printf("ip => %p\n", ip); *ip = *ip + 10; printf("*ip = *ip + 10; *ip => %d\n", *ip); printf("ip => %p\n", ip); *ip += 1; printf("*ip += 1; *ip => %d\n", *ip); printf("ip => %p\n", ip); ++*ip; printf("++*ip; *ip => %d\n", *ip); printf("ip => %p\n", ip); (*ip)++; printf("(*ip)++; *ip => %d\n", *ip); printf("ip => %p\n", ip); *ip++; printf("*ip++; *ip => %d\n", *ip); printf("ip => %p\n", ip); return 0; }
実行結果
$ ./calc_pointer
*ip => 5
ip => 0x7fff5fbfebec
*ip = *ip + 10; *ip => 15
ip => 0x7fff5fbfebec
*ip += 1; *ip => 16
ip => 0x7fff5fbfebec
++*ip; *ip => 17
ip => 0x7fff5fbfebec
(*ip)++; *ip => 18
ip => 0x7fff5fbfebec
*ip++; *ip => 1606413312 /* ポインタ ip をインクリメントしている */
ip => 0x7fff5fbfebf0
*ip++
はポインタ ip
をインクリメントし、その指し示す先の内容となる。
プログラミング言語C 第2版 ANSI規格準拠
posted with amazlet at 09.11.27
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
共立出版
売り上げランキング: 9726