第9回のポイント
ポインタ
ポインタとは変数のメモリアドレス(変数のメモリにおける格納位置)のこと。
ポインタ変数の定義
int *p;//ポインタ変数pを定義。pにはメモリアドレスが格納されます。
int a=10,b=0;//int型の変数aとbを宣言
p = &a;//ポインタ変数pにaのメモリアドレスを代入
b = *p;//bに*p(すなわちaの値)を代入
変数のメモリアドレスを表す場合は変数名の左に&を付けます。
ポインタ変数を定義する場合は変数名の左に*を付けます。
ポインタがある理由は、関数に対して参照渡しを行う場合です。参照渡しを行うことで、関数で値を直接操作することができます。ポインタを使わずに引数に値を与える場合は値渡しといい、関数自体が引数の値を操作することはできません。
googleドライブ上にこの講座のプログラムコード、スライドデータを置いています。
https://drive.google.com/folderview?id=0B7jeGhcD18UYZjlDalQwRGpVLWM&usp=sharing
https://drive.google.com/folderview?id=0B7jeGhcD18UYZjlDalQwRGpVLWM&usp=sharing
以下はビデオで作成したプログラムコードです。
//Study09.c
#include <stdio.h>
int main (int argc, const char * argv[]){
int *p;//ポインタ変数p
int a=5;
p = &a;//ポインタ変数にaのメモリアドレスを代入
printf("aの値は%d\n",a);
kazuchange(p);//値を20にする関数を呼び出し
printf("aの値は%d\n",a);
return 0;
}
void kazuchange(int *p){
*p=20;
}
0 件のコメント:
コメントを投稿