開発環境 |
Microsoft Visual C++ 2010 Express (SP1) |
実行環境 |
Microsoft Windows XP Home Edition (SP3) |
プロジェクトの種類 |
Win32 コンソール アプリケーション |
プロジェクト名 |
static |
アプリケーションの種類 |
コンソール アプリケーション |
追加のオプション |
空のプロジェクト |
static.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
void sub(void)
{
static const char scac[] = "aaaaa"; // const staticとしても同じ
static char sac[] = "static";
static int si = 10;
const char cac[] = "bbbbb";
char ac[] = "auto"; // ポインタではない
int i = 20;
int ai[] = {si, i}; // static変数でなければ、初期化は定数でなくてもいい
printf("scac = %p %s\n", scac, scac);
printf("sac = %p %s\n", sac, sac);
printf("si = %p %d\n", &si, si);
printf("cac = %p %s\n", cac, cac);
printf("ac = %p %s\n", ac, ac);
printf("i = %p %d\n", &i, i);
printf("ai = %p %d, %d\n", ai, ai[0], ai[1]);
strcpy(sac, "STATIC");
si++;
strcpy(ac, "AUTO");
// ac++; // error C2105: '++' には左辺値が必要です。
i++;
}
int main()
{
sub();
sub();
return 0;
}
出力
scac = 00415838 aaaaa
sac = 00417000 static
si = 00417008 10
cac = 0012FE84 bbbbb
ac = 0012FE74 auto
i = 0012FE68 20
ai = 0012FE58 10, 20
scac = 00415838 aaaaa
sac = 00417000 STATIC
si = 00417008 11
cac = 0012FE84 bbbbb
ac = 0012FE74 auto
i = 0012FE68 20
ai = 0012FE58 11, 20
最終更新:2012年09月10日 21:54