アットウィキロゴ
ProgramingTips
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

ProgramingTips

ポインタ2

最終更新:

Bot(ページ名リンク)

- view
だれでも歓迎! 編集

C言語>ポインタ2


2回目は、関数を使ってポインタを説明します。

例文

//================================================
//include
//================================================
#include <stdio.h>

//================================================
//struct
//================================================
struct tagChara
{
	int attack;//攻撃力
	int defence;//防御力
};

//================================================
//関数のプロトタイプ宣言
//================================================
void SetStatus(int *attack, int *defence);//ステータスセット

//================================================
//メイン関数
//================================================
int main(void)
{
	struct tagChara player;

	/*ステータスセット*/
	SetStatus(&player.attack, &player.defence);
	
	[[printf]]("攻撃力:%d\t", player.attack);
	printf("防御力:%d", player.defence);
	
	return 0;
} 

//================================================
//ステータスセット
//================================================
void SetStatus(int *attack, int *defence)
{
	printf("攻撃力を入力せよ");
	[[scanf]]("%d", attack);
	
	printf("防御力を入力せよ");
	scanf("%d", defence);
}

実行結果


解説

void SetStatus(int *attack, int *defence);
引数がポインタの関数のプロトタイプ宣言をしています。
こうしないと、正確な値が出ません(確認済)

SetStatus(&player.attack, &player.defence);
関数の使用です。
ポインタを参照するため、&をつけてください。

scanf("%d", attack);
このscanfですが、少し違うところがあります。
それは&がついていないところです。
これは、前回のポインタの説明に関係してきます。
前回
ポインタ 数値:*を前につける
アドレス:何も付けない
と書いたと思います。
その関係で、アドレスを参照するときには何もいらないのです。

<C言語に戻る

タグ:

+ タグ編集
  • タグ:
記事メニュー
最近更新されたスレッド
ウィキ募集バナー