區塊範例
下列程式顯示資料物件值在巢狀區塊中的變更方式:
/**
** This example shows how data objects change in nested blocks.
**/
#include <stdio.h>
int main(void)
{
int x = 1; /* Initialize x to 1 */
int y = 3;
if (y > 0)
{
int x = 2; /* Initialize x to 2 */
printf("second x = %4d\n", x);
}
printf("first x = %4d\n", x);
return(0);
}程式會產生下列輸出:
second x = 2
first x = 1名稱為 x 的兩個變數定義在 main中。 當 main 執行時, x 的第一個定義會保留儲存體。 不過,因為 x 的第二個定義出現在巢狀區塊內,所以 printf("second x = %4d\n",
x); 會將 x 辨識為前一行所定義的變數。 因為 printf("first x = %4d\n", x); 不是巢狀區塊的一部分,所以 x 會辨識為 x的第一個定義。