識別子の有効範囲を確認する

明解C言語 入門編 > 6. 関数 >

識別子の有効範囲を確認する

C


#include <stdio.h>

int x = 700;

void print_x(void)
{
printf("%d\n", x);
}

int main(int argc, char* argv[])
{
int x = 800;

print_x(); /* 700 */
printf("%d\n", x); /* 800 */

int i;
for (i = 1; i < 5; i++)
{
int x = i * 100;
printf("%d\n", x); /* 100 〜 400 */
}

printf("%d\n", x); /* 800 */

return 0;
}

実行結果


R:\>lesson052\project1.exe
700
800
100
200
300
400
800

C++


#include <stdio.h>

int x = 700;

void print_x(void)
{
printf("%d\n", x);
}

int main(int argc, char* argv[])
{
int x = 800;

print_x(); // 700
printf("%d\n", x); // 800

int i;
for (i = 1; i < 5; i++)
{
int x = i * 100;
printf("%d\n", x); // 100 〜 400
}

printf("%d\n", x); // 800

printf("%d\n", ::x); // 700

return 0;
}

実行結果


T:\>lesson052\Project1.exe
700
800
100
200
300
400
800
700

Perl
$x = 700;

sub print_x
{
    print "$x\n";
}

sub main
{
    my $x = 800;

    &print_x;               # 700
    print "$x\n";           # 800

    for (1..4)
    {
        my $x = $_ * 100;
        print "$x\n";       # 100 〜 400
    }

    print "$x\n"            # 800
}

&main;

実行結果

L:\>perl lesson_06_052.pl
700
800
100
200
300
400
800

Ruby
$x = 700

def print_x
    print "#{$x}\n"
end

def main
    x = 800

    print_x                  # 700
    print "#{x}\n"           # 800

    for i in 1..4
        x = i * 100
        print "#{x}\n"       # 100 〜 400
    end

    print "#{x}\n"            # 400
end

main

実行結果

L:\>ruby l:\lesson_06_052.rb
700
800
100
200
300
400
400