ページ 11

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

Posted: 2016年11月03日(木) 16:45
by なうみ
ここで、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;
}

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

Posted: 2016年11月03日(木) 16:51
by みけCAT
なうみ さんが書きました:ここで、px=&xにする理由はなんですか?
px = &x;は、xのアドレスをpxに代入すると言う意味です。
全角の「px=&x」にする理由は、そのようにする人に聞いてみないとわからないですが、例えばコンパイルエラーになることの確認、とかでしょうか?

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

Posted: 2016年11月03日(木) 16:54
by usao
オフトピック
そのコードを書いた人に訊けばいいのに.

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

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

コード:

#include<stdio.h>

int main(void){
	puts("name=鈴木太郎\nweight=63\nheight=170");
	return 0;
}
使う必要のない構造体やポインタをわざわざ使用しているのは、それらの使い方を説明するサンプルコードとしての役割があるからであると予想できます。