© 2005 Martin J. Dürst 青山学院大学
getstring 関数の設計:
| 位置 | 指数の値 | 入力文字 | ||
EOF |
\n |
他 | ||
| 最初 | i==0 |
b[0]='\0'; return end; |
b[0]='\0'; return okay; |
b[0]=c; i++; |
| 場所あり | i<l-1 |
b[i]='\0'; return okay; |
b[i]='\0'; return okay; |
b[i]=c; i++; |
| ぎりぎり | i==l-1 |
b[i]='\0'; return okay; |
b[i]='\0'; return okay; |
b[i]='\0'; i++; |
| 多すぎ | i>l-1 |
return over; |
return over; |
なし |
& (単項)* (単項)int のポインタ、double
のポインタ、char のポインタ実際、C の場合には配列とポインタは殆ど同じ
&*p ≡ p
*&v ≡ v
*(p+i) ≡
p[i] ≡
i[p]
(p はポインタか配列かは問わない)
scanf
などコンパイラが型をチェックできない場合)void function (int *p) {
if (*p < 10)
*p += 3;
}
int i = 5; function (&i);
int *a; と int a[];
は全く同じ)