C再挑戦-ポインタ1-
C言語の再挑戦をしていると、書いてきていますが、何をどう挑戦しているのか分からないでしょうから、こんなコードを書いています。という例を挙げます。#include <stdio.h>void byval(int a,int b){ a++;b++; printf("byval中 %d %d\n",a,b);}void byref(int *a,int *b){ (*a)++;(*b)++; printf("byref中 %d %d\n",*a,*b);}int main(){ int x,y; x=1;y=2; printf("byval前 %d %d\n",x,y); byval(x,y); printf("byval後 %d %d\n",x,y); printf("byref前 %d %d\n",x,y); byref(&x,&y); printf("byref後 %d %d\n",x,y); return 0;}/*結果byval前 1 2byval中 2 3byval後 1 2byref前 1 2byref中 2 3byref後 2 3*/つまりは、値渡しと参照渡しの例です。byvalとbyrefの両方とも、1ずつ足しているんですが、その加算が、サブルーチンを抜けた時に有効になるか無効になるかのサンプルです。昔は、このような理屈すら理解できずにいましたが、今は、割と理解できつつあります。時々、こんな風に、再挑戦の中身を紹介します。もし、C言語バリバリの方で、「これおかしいよ」というのがあったら、コメントを頂きたいと思います。