home > 写経編 > 柴田望洋『明解C言語 入門編』 > 12. 構造体 >

ForNext

Only Do What Only You Can Do

092. 構造体の受け渡し

VBScript

JScript

Perl

更新日 : 2010.10.18
sub hiroko
{
    my ($std) = @_;
    
    $$std{"height"} = 180;
    $$std{"weight"} =  80;
}

%sanaka = (name => "Sanaka", height => 175);

printf("氏名:%s\n", $sanaka{"name"});
printf("身長:%d\n", $sanaka{"height"});
printf("体重:%f\n", $sanaka{"weight"});

print "\n";

&hiroko(\%sanaka);

printf("氏名:%s\n", $sanaka{"name"});
printf("身長:%d\n", $sanaka{"height"});
printf("体重:%f\n", $sanaka{"weight"});
L:\>perl lesson_12_092.pl
氏名:Sanaka
身長:175
体重:0.000000

氏名:Sanaka
身長:180
体重:80.000000

PHP

更新日 : 2010.11.03
<?php
function hiroko(&$std)
{
    $std["height"] = 180;
    $std["weight"] =  80;
}

$sanaka = array("name" => "Sanaka", "height" => 175);

printf("氏名:%s\n", $sanaka["name"]);
printf("身長:%d\n", $sanaka["height"]);
printf("体重:%f\n", $sanaka["weight"]);
print "\n";

hiroko($sanaka);

printf("氏名:%s\n", $sanaka["name"]);
printf("身長:%d\n", $sanaka["height"]);
printf("体重:%f\n", $sanaka["weight"]);
?>
L:\>php lesson_12_092.php
氏名:Sanaka
身長:175
体重:0.000000

氏名:Sanaka
身長:180
体重:80.000000

Python

更新日 : 2010.11.17
# coding: Shift_JIS

def hiroko(std):
    std["height"] = 180;
    std["weight"] =  80;

sanaka = {"name":"Sanaka", "height":175}

print "氏名:%s" % sanaka["name"]
print "身長:%d" % sanaka["height"]
print

hiroko(sanaka)

print "氏名:%s" % sanaka["name"]
print "身長:%d" % sanaka["height"]
print "体重:%f" % sanaka["weight"]
N:\>python lesson_12_092.py
氏名:Sanaka
身長:175

氏名:Sanaka
身長:180
体重:80.000000

Ruby

更新日 : 2010.11.01
def hiroko(std)
    std["height"] = 180
    std["weight"] =  80
end

sanaka = {"name" => "Sanaka", "height" => 175}

printf("氏名:%s\n", sanaka["name"])
printf("身長:%d\n", sanaka["height"])
printf("体重:%f\n", sanaka["weight"].to_f)
puts ""

hiroko(sanaka)

printf("氏名:%s\n", sanaka["name"])
printf("身長:%d\n", sanaka["height"])
printf("体重:%f\n", sanaka["weight"])
L:\>ruby  l:\lesson_12_092.rb
氏名:Sanaka
身長:175
体重:0.000000

氏名:Sanaka
身長:180
体重:80.000000

PowerShell

Scala

F#

C

更新日 : 2010.10.08
#include <stdio.h>
#include <string.h>

struct gstudent
{
    char  name[20];
    int   height;
    float weight;
};

void hiroko(struct gstudent* std)
{
    (*std).height = 180;
    (*std).weight =  80;
}

int main(int argc, char* argv[])
{
    struct gstudent sanaka = {"Sanaka", 175};

    printf("氏名:%s\n", sanaka.name);
    printf("身長:%d\n", sanaka.height);
    printf("体重:%f\n", sanaka.weight);
    puts("");

    hiroko(&sanaka);

    printf("氏名:%s\n", sanaka.name);
    printf("身長:%d\n", sanaka.height);
    printf("体重:%f\n", sanaka.weight);

    return 0;
}
R:\>lesson092\project1.exe
氏名:Sanaka
身長:175
体重:0.000000

氏名:Sanaka
身長:180
体重:80.000000

C++

C++Builder

VC++

C#

Java

更新日 : 2010.11.05
class Lesson092 {
    public static void main(String[] args) {
        CStudent sanaka = new CStudent("Sanaka", 175);

        System.out.printf("氏名:%s\n", sanaka.name);
        System.out.printf("身長:%d\n", sanaka.height);
        System.out.printf("体重:%f\n", sanaka.weight);
        System.out.println("");

        hiroko(sanaka);

        System.out.printf("氏名:%s\n", sanaka.name);
        System.out.printf("身長:%d\n", sanaka.height);
        System.out.printf("体重:%f\n", sanaka.weight);
    }

    static void hiroko(CStudent std)
    {
        std.height = 180;
        std.weight =  80;
    }
}
class CStudent {
    public String name;
    public int    height;
    public double weight;

    public CStudent(String name, int height, double weight) {
        this.name   = name;
        this.height = height;
        this.weight = weight;
    }
    public CStudent(String name, int height) {
        this.name   = name;
        this.height = height;
    }
}
L:\>java Lesson092
氏名:Sanaka
身長:175
体重:0.000000

氏名:Sanaka
身長:180
体重:80.000000

Objective-C

D

VB

VB.NET

Delphi

更新日 : 2010.09.24
program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils;

type
    TStudent = record
        name:   String;
        height: Integer;
        weight: Real;
end;

procedure hiroko(var std:TStudent);
begin
    std.height := 180;
    std.weight :=  80;
end;

procedure main();
var
    sanaka: TStudent;
begin
    sanaka.name   := 'Sanaka';
    sanaka.height := 175;

    Writeln(Format('氏名:%s', [sanaka.name]));
    Writeln(Format('身長:%d', [sanaka.height]));
    Writeln(Format('体重:%f', [sanaka.weight]));
    Writeln('');

    hiroko(sanaka);

    Writeln(Format('氏名:%s', [sanaka.name]));
    Writeln(Format('身長:%d', [sanaka.height]));
    Writeln(Format('体重:%f', [sanaka.weight]));
end;

begin
    main;
end.
S:\>lesson092\project1.exe
氏名:Sanaka
身長:175
体重:0.00

氏名:Sanaka
身長:180
体重:80.00

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system