// pointer-test2.c 1 #include 2 #include 3 4 int main(void) 5 { 6 int a = INT_MAX; 7 int b = 10; 8 int *intPtr; 9 10 11 printf("The value (a) = %d\n", a); // 整数型変数 a の値を印刷する 12 printf("The address (&a) =%p\n\n", &a); // 整数型変数 a のアドレスを印刷する 13 14 printf("The value (b) = %d\n", b); // 整数型変数 b の値を印刷する 15 printf("The address (&b) =%p\n\n", &b); // 整数型変数 b のアドレスを印刷する 16 17 intPtr = &a; /* a のアドレスを intPtr に代入 */ 18 19 printf("The value (intPtr) = %p\n", intPtr); /* a のアドレスに一致 */ // 整数型へのポインタ変数の値,この場合 a のアドレスを印刷する 20 printf("The value of *intPtr = %d\n", *intPtr); /* a の値に一致 */ // 整数型へのポインタ変数 intPtr が指し示す先の値,この場合 a の値を印刷する 21 printf("The address (&intPtr) = %p\n\n", &intPtr); // 整数型えのポインタ変数 intPtr のアドレスを印刷する 22 23 *intPtr = INT_MIN; 24 25 printf("The value (a) = %d\n", a); // 整数型変数 a の値を印刷する 26 printf("The value (intPtr) = %p\n", intPtr); /* a のアドレスに一致 */ // 整数型へのポインタ変数 intPtr の値,この場合 a のアドレスを印刷する 27 printf("The value (*intPtr) = %d\n\n", *intPtr); /* a の値に一致 */ // 整数型へのポインタ変数 intPtr が指し示す先の値を印刷する 28 printf("The address (&intPtr) =%p\n", &intPtr); // 整数型へのポインタ変数 intPtr 自体のアドレスを印刷する 29 30 intPtr = &b; 31 32 printf("The value (intPtr) = %p\n", intPtr); /* b のアドレスに一致 */ // 整数型へのポインタ変数 intPtr の値,この場合 b のアドレスを印刷する 33 printf("The value (*intPtr) = %d\n", *intPtr); /* b の値に一致 */ // 整数型へのポインタ変数 intPtr の指し示す先の値, この場合 b の値を印刷する 34 printf("The address (&intPtr) =%p\n", &intPtr); // 整数型へのポインタ変数 intPtr 自体のアドレスを印刷する 35 36 return 0; 37 } // pointer-test3.c 1 #include 2 #include 3 4 int main(void) 5 { 6 int a = INT_MAX; 7 int *intPtr = &a; 8 9 long int la = LONG_MIN; 10 long int *lintPtr = &la; 11 12 printf("The value (a)= %d\n", a); // 整数型変数 a の値を印刷する 13 printf("The address (&a) =%p\n\n", &a); // 整数型変数 a のアドレスを印刷する 14 15 printf("The value (intPtr) = %p\n", intPtr); /* a のアドレスに一致 */ // 整数型へのポインタ変数 intPtr の値,この場合 a のアドレスを印刷する 16 printf("The value of *intPtr = %d\n", *intPtr); /* a の値に一致 */ // 整数型へのポインタ変数 intPtr の指し示す先の値,この場合 a の値を印刷する 17 printf("The address (&intPtr) = %p\n\n", &intPtr); // 整数型へのポインタ変数 intPtr 自体のアドレスを印刷する 18 19 printf("The value (la) = %ld\n", la); // long int 型変数 la の値を印刷する 20 printf("The address (&la) = %p\n\n", &la); // long int 型変数 la のアドレスを印刷する 21 22 printf("The value (lintPtr) = %p\n", lintPtr); /* la のアドレスに一致 */ // long int 型変数 lintPtr の値,この場合 la のアドレスを印刷する 23 printf("The value (*lintPtr) = %ld\n", *lintPtr);/* la の値に一致 */ // long int 型変数 lintPtr の指し示す先の値,この場合 la の値を印刷する 24 printf("The address (&lintPtr) =%p\n", &lintPtr); // long int 型変数 lintPtr 自体のアドレスを印刷する 25 26 return 0; 27 } // pointer-test4.c 1 #include 2 #include 3 4 int main(void) 5 { 6 int a = INT_MAX; 7 int *intPtr = &a; 8 long int la = LONG_MAX; 9 long int *lintPtr = &la; 10 long long int lla = LLONG_MAX; 11 long long int *llintPtr = &lla; 12 13 printf("The value (a)= %d\n", a); // 整数型変数 a の値を印刷する 14 printf("The address (&a) =%p\n\n", &a); // 整数型変数 a のアドレスを印刷する 15 16 printf("The value (la) = %ld\n", la); // long int 型の変数 la の値を印刷する 17 printf("The address (&la) = %p\n\n", &la); // long int 型の変数 la のアドレスを印刷する 18 19 printf("The value (lla) = %lld\n", lla); // long long int 型の変数 lla の値を印刷する 20 printf("The address (&lla) = %p\n\n", &lla); // long long int 型の変数 lla のアドレスを印刷する 21 22 printf("The value (intPtr) = %p\n", intPtr); /* a のアドレスに一致 */ // 整数型へのポインタ変数の値,この場合 a のアドレスを印刷する 23 printf("The value of *intPtr = %d\n", *intPtr); /* a の値に一致 */ // 整数型へのポインタ変数の指し示す先の値,この場合 a の値を印刷する 24 printf("The address (&intPtr) = %p\n\n", &intPtr); // 整数型へのポインタ変数自体のアドレスを印刷する 25 26 printf("The value (lintPtr) = %p\n", lintPtr); /* la のアドレスに一致 */ // long int 型へのポインタ変数 lintPtr の値,この場合 la のアドレスを印刷する 27 printf("The value (*lintPtr) = %ld\n", *lintPtr);/* la の値に一致 */ // long int 型へのポインタ変数 lintPtr の指し示す先の値,この場合 la の値を印刷する 28 printf("The address (&lintPtr) =%p\n\n", &lintPtr); // long int 型へのポインタ変数 lintPtr 自体のアドレスを印刷する 29 30 printf("The value (llintPtr) = %p\n", llintPtr); /* lla のアドレスに一致 */ // long long int 型へのポインタ変数 llintPtr の値,この場合 lla のアドレスを印刷する 31 printf("The value (*llintPtr) = %lld\n", *llintPtr);/* lla の値に一致 */ // long long int 型へのポインタ変数 llintPtr の指し示す先の値,この場合 lla の値を印刷する 32 printf("The address (&llintPtr) =%p\n", &llintPtr); // long long int 型へのポインタ変数 llintPtr 自体のアドレスを印刷する 33 34 return 0; 35 } // pointer-test5.c 1 #include 2 #include 3 #include 4 5 int main(void) 6 { 7 int a = INT_MAX; 8 int *intPtr = &a; 9 10 float f = FLT_MAX; 11 float *fPtr = &f; 12 13 double d = DBL_MAX; 14 double *dPtr = &d; 15 16 long double ld = LDBL_MAX; 17 long double *ldPtr = &ld; 18 19 printf("The value (a)= %d\n", a); // 整数型変数 a の値を印刷する 20 printf("The value (f)= %-20e\n", f); // 単精度実数型変数 f の値を印刷する 21 printf("The value (d)= %-20e\n", d); // 倍精度実数型変数 d の値を印刷する 22 printf("The value (ld)= %-20Le\n\n", ld); // long double 型変数 ld の値を印刷する 23 24 printf("The address (&a) =%p\n", &a); // 整数型変数 a のアドレスを印刷する 25 printf("The address (intPtr) =%p\n", intPtr); // 整数型へのポインタ変数 intPtr の値,この場合 a のアドレスを印刷する 26 printf("The address (&intPtr) =%p\n\n", &intPtr); // 整数型へのポインタ変数 intPtr 自体のアドレスを印刷する 27 printf("The address (&f) =%p\n", &f); // 単精度実数型変数 f のアドレスを印刷する 28 printf("The address (fPtr) =%p\n", fPtr); // 単精度実数型へのポインタ変数 fPtr の値,この場合 f のアドレスを印刷する 29 printf("The address (&fPtr) =%p\n\n", &fPtr); // 単精度実数型へのポインタ変数 fPtr 自体のアドレスを印刷する 30 printf("The address (&d) =%p\n", &d); // 倍精度実数型変数 d のアドレスを印刷する 31 printf("The address (dPtr) =%p\n", dPtr); // 倍精度実数型へのポインタ変数 dPtr の値,この場合 d のアドレスを印刷する 32 printf("The address (&dPtr) =%p\n\n", &dPtr); // 倍精度実数型へのポインタ変数 dPtr 自体のアドレスを印刷する 33 printf("The address (&ld) =%p\n", &ld); // long double 型変数 ld のアドレスを印刷する 34 printf("The address (ldPtr) =%p\n", ldPtr); // long double 型へのポインタ変数 ldPtr の値,この場合 ld のアドレスを印刷する 35 printf("The address (&ldPtr)=%p\n", &ldPtr); // long double 型へのポインタ変数 ldPtr 自体のアドレスを印刷する 36 37 return 0; 38 } Hebb:~/WWW/comp3a-2008/src$ cat -n pointer-test6.c 1 #include 2 3 int main(void) 4 { 5 int a = 5; 6 int *ap; 7 8 char str[]="Hello, world"; 9 char *strp = str; 10 11 ap = &a; 12 13 printf("The value (a) = %d\n", a); // 整数型変数 a の値を印刷する 14 printf("The address (&a) =%p\n", &a); // 整数型変数 a のアドレスを印刷する 15 16 printf("The value (ap) = %p\n", ap); // 整数型へのポインタ変数 ap の値,この場合 a のアドレスを印刷する 17 printf("The address (&ap) = %p\n", &ap); // 整数型へのポインタ変数 ap 自体のアドレスを印刷する 18 printf("The value of *ap = %d\n\n", *ap); // 整数型へのポインタ変数の指し示す先の値,この場合 a の値を印刷する 19 20 printf("The value (str) = %s\n", str); // 文字配列(文字列)の値この場合 "Helllo, world" という文字列を印刷する 21 printf("The address (&str) =%p\n", &str); // 文字配列(文字列)の先頭の文字のアドレスを印刷する 22 printf("The value (strp) = %p\n", strp); // 文字配列(文字列)へのポインタ変数 strp の値,この場合 str[0] のアドレスを印刷する 23 printf("The address (&strp) = %p\n", &strp); // 文字配列(文字列)へのポインタ変数 stp 自体のアドレスを印刷する 24 printf("The value of *str = %c\n", *strp); // 文字配列(文字列)へのポインタ変数 strp の指し示す先の値,この場合 str[0] すなわち 'H' を印刷する 25 printf("The value of *++str = %c\n", *++strp); // 文字配列(文字列)へのポインタ変数 strp の指し示す先の値,この場合 str[1] すなわち 'e' を印刷する 26 printf("The value of *++str = %c\n", *++strp); // 文字配列(文字列)へのポインタ変数 strp の指し示す先の値,この場合 str[2] すなわち 'l' を印刷する 27 printf("The value of *++str = %c\n", *++strp); // 文字配列(文字列)へのポインタ変数 strp の指し示す先の値,この場合 str[3] すなわち 'l' を印刷する 28 printf("The value of *++str = %c\n", *++strp); // 文字配列(文字列)へのポインタ変数 strp の指し示す先の値,この場合 str[4] すなわち 'o' を印刷する 29 printf("The value of *++str = %c\n", *++strp); // 文字配列(文字列)へのポインタ変数 strp の指し示す先の値,この場合 str[5] すなわち ',' を印刷する 30 printf("\n"); 31 32 strp = &str[0]; 33 while(*strp) { 34 putchar(*strp++); // 文字配列(文字列)へのポインタ変数が指し示す先の値,この場合 str[] の各文字を印刷する 35 } 36 putchar('\n'); 37 38 strp = str; 39 while(*strp) { 40 putchar(*strp++); // 文字配列(文字列)へのポインタ変数が指し示す先の値,この場合 str[] の各文字を印刷する 41 } 42 putchar('\n'); 43 44 /* この辺りがプログラミング言語 C の面妖なところ */ 45 /* 頑張って理解してねー(^^)/~ */ 46 for ( strp = str; *strp; *strp++ ) { 47 putchar(*strp); // 文字配列(文字列)へのポインタ変数が指し示す先の値,この場合 str[] の各文字を印刷する 48 } 49 putchar('\n'); 50 51 return 0; 52 }