このC言語プログラムについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
なうみ

このC言語プログラムについて

#1

投稿記事 by なうみ » 8年前

ここで、px=&xにする理由はなんですか?

コード:

#include<stdio.h>
#include<string.h>
	struct student {
		char name[20];
		int height;
		int weight;
	};
	int main(void){
		struct student x, *px;
		px = &x;

		strcpy(px->name, "鈴木太郎");
		px->height = 170;
		px->weight = 63;
		printf("name=%s\n", px->name);
		printf("weight=%d\n", px->weight);
		printf("height=%d\n", px->height);
		return 0;
}

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: このC言語プログラムについて

#2

投稿記事 by みけCAT » 8年前

なうみ さんが書きました:ここで、px=&xにする理由はなんですか?
px = &x;は、xのアドレスをpxに代入すると言う意味です。
全角の「px=&x」にする理由は、そのようにする人に聞いてみないとわからないですが、例えばコンパイルエラーになることの確認、とかでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: このC言語プログラムについて

#3

投稿記事 by usao » 8年前

オフトピック
そのコードを書いた人に訊けばいいのに.

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: このC言語プログラムについて

#4

投稿記事 by みけCAT » 8年前

px = &x;を使う理由は、おそらく構造体へのポインタの使い方を説明するためでしょう。
このコードは、(「鈴木太郎」が19バイトを超えるような特殊な文字コードが使用されていなければ)以下のコードと等価です。

コード:

#include<stdio.h>

int main(void){
	puts("name=鈴木太郎\nweight=63\nheight=170");
	return 0;
}
使う必要のない構造体やポインタをわざわざ使用しているのは、それらの使い方を説明するサンプルコードとしての役割があるからであると予想できます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る