Take me away.
C言語
最終更新:
foreign_blue
-
view
const
プリミティブ型
const int i=0; i=++; //コンパイルエラー
int const i=0; // const int i=0; と同じ
ポインタ
型名の前にconstを書くとポインタの参照先を変更できない
char a[3] = { 1, 2, 3 };
const int *p = a;
*p = 0; //エラー
下の2つは同じ意味
const int *p;
const int *p;
int const *p;
役に立つケース
void print(const char *s) {
puts(s);
//この関数内では s[0]='\0'; などとは出来ない
}
[*]の後にconst修飾子を付けるとポインタ変数の示す番地が変更できない。
int a[3] = { 1, 2, 3 };
int * const p = a;
p++; //a[1]=2 のポインタを得ようとするとコンパイルエラー
静的(static)関数のプロトタイプ宣言
- 関数名の前に static を付けると、そのファイル内からしか参照できなくなる。
- イメージとしては private 関数に近い。
- プロトタイプ宣言はソースファイル中で行い、ヘッダファイルに書かない。



