代码1-1
#include <stdio.h> int main(void) { int hoge = 5; int piyo = 10; int *hoge_p; /* それぞれの変数のアドレスを表示する */ printf("&hoge..%p\n", (void*)&hoge); printf("&piyo..%p\n", (void*)&piyo); printf("&hoge_p..%p\n", (void*)&hoge_p); /* ポインタ変数hoge_pにhogeのアドレスを代入する */ hoge_p = &hoge; printf("hoge_p..%p\n", (void*)hoge_p); /* hoge_pを経由してhogeの値を表示する */ printf("*hoge_p..%d\n", *hoge_p); /* hoge_pを経由してhogeの値を変更する */ *hoge_p = 10; printf("hoge..%d\n", hoge); return 0; }
代码1-2
#include <stdio.h> int main(void) { int hoge; int *hoge_p; /* hoge_p に hogeへのポインタを設定 */ hoge_p = &hoge; /* hoge_p の値を表示 */ printf("hoge_p..%p\n", (void*)hoge_p); /* hoge_pに 1加算 */ hoge_p++; /* hoge_p の値を表示 */ printf("hoge_p..%p\n", (void*)hoge_p); /* hoge_p に 3加算した値を表示 */ printf("hoge_p..%p\n", (void*)(hoge_p + 3)); return 0; }
代码1-3
#include <stdio.h> int main(void) { int array[5]; int i; /* 配列arrayに値を設定 */ for (i = 0; i < 5; i++) { array[i] = i; } /* その内容を表示 */ for (i = 0; i < 5; i++) { printf("%d\n", array[i]); } /* arrayの各要素のアドレスを表示 */ for (i = 0; i < 5; i++) { printf("&array[%d]... %p\n", i, (void*)&array[i]); } return 0; }
代码1-4
#include <stdio.h> int main(void) { int array[5]; int *p; int i; /* 配列arrayに値を設定 */ for (i = 0; i < 5; i++) { array[i] = i; } /* その内容を表示(ポインタ版) */ for (p = &array[0]; p != &array[5]; p++) { printf("%d\n", *p); } return 0; }
代码1-5
#include <stdio.h> #include <ctype.h> #include <stdlib.h> int get_word(char *buf, int buf_size, FILE *fp) { int len; int ch; /* 空白文字の読み飛ばし */ while ((ch = getc(fp)) != EOF && !isalnum(ch)) ; if (ch == EOF) return EOF; /* ここで,chには,単語の最初の文字が格納されている */ len = 0; do { buf[len] = ch; len++; if (len >= buf_size) { /* 単語が長すぎるのでエラー */ fprintf(stderr, "word too long.\n"); exit(1); } } while ((ch = getc(fp)) != EOF && isalnum(ch)); buf[len] = '\0'; return len; } int main(void) { char buf[256]; while (get_word(buf, 256, stdin) != EOF) { printf("<<%s>>\n", buf); } return 0; }