c++
■基本
#include
using namespace std;
//main()はプログラム本体となる
int main(){
cout << "";
//printfと一緒(出力)
cin >> 変数1 >>変数2;
//キーボードから(入力)
const 定数;
return 0;
//main関数終了
}
■ポインタ
よくポインタを利用される場面として関数の呼出しの仮引数があります。
関数は実行結果を値として返す事ができますが2つ以上の結果が欲しい時には
仮引数にポインタを使い呼び出す時に関数によって結果を格納する変数のアド
レスを引数として渡します。
このように関数に間接参照させる事によって変数はスコープの壁を超えてア
クセスする事ができます。
▼eg1:
#include
void func(int*, int*);
//プロトタイプ宣言です。
funcではポインタを使って間接参照をするので
仮引数はポインタとして宣言する必要がある
main()
{
int x = 10, y = 15;
func(&x, &y);
//呼出し。
ポインタにはアドレスをセットするので
引数にはポインタによって参照される変数のアドレスを入れる
printf("x=%d\ny=%d",x,y);
}
void func(int *a, int *b)
//a = &x; b = &y;
a と b はポインタです
{
*a = *a * 10;
*b = *b * 10;
//すでにアドレスのセットは終わっているので
x = y * 10;
x = y * 10;と同じ意味です
}
▼eg2:
int* p; ↓
int * p
操作する変数の型 ポインタとしての宣言 ポインタ名
int *p;
int var1,var2;
p = &var1; /* var1 のアドレスをポインタ p に設定 */
[*p = 3; ] /* p による遠隔操作 var1 に3を代入 */
p = &var2; /* こんどは操作する変数を var2 に変更 */
[*p = 7; ] /* p による遠隔操作 var2 に7を代入 */
▼eg3:
main(){
int i[]={1,2};
int ans;
ans=func(i);
}
int func(int *x)
//*x → 配列の先頭の値 i[0]
{
return (*x * *(x+1));
//*(x+1) → 配列i[0]の次の要素の値
}