KAIHATSUGIKEN GROUP
********************************************************************************
11 配列のアドレス渡し
************
void cast(int *z);
main()
{
int a[3];
a[0]=2;
a[1]=3;
cast(a);
printf("%d\n",a[2]);
}
void cast(int *z)
{
*(z+2)=(*z)*(*z+1));
}
****
6
****
void cast(int *z);
main()
{
int a[3]; /* 配列で変数を3つ準備 */
a[0]=2;
a[1]=3;
cast(a);
printf("%d\n",a[2]);
}
void cast(int *z)
{
*(z+2)=(*z)*(*z+1));
}
****
void cast(int *z);
main()
{
int a[3];
a[0]=2;
a[1]=3;
cast(a); /* 配列の先頭アドレスを引き数 a=&a[0] */
printf("%d\n",a[2]);
}
void cast(int *z)
{
*(z+2)=(*z)*(*z+1));
}
****
void cast(int *z);
main()
{
int a[3];
a[0]=2;
a[1]=3;
cast(a);
printf("%d\n",a[2]);
}
void cast(int *z) /* aをポインタzで受ける */
{
*(z+2)=(*z)*(*z+1));
}
****
void cast(int *z);
main()
{
int a[3];
a[0]=2;
a[1]=3;
cast(a);
printf("%d\n",a[2]);
}
void cast(int *z) /* aをポインタzで受ける z=a=&a[0]となる */
{
*(z+2)=(*z)*(*z+1));
}
****
void cast(int *z);
main()
{
int a[3];
a[0]=2;
a[1]=3;
cast(a);
printf("%d\n",a[2]);
}
void cast(int *z)
{
*(z+2)=(*z)*(*z+1)); /* z+1はa[1],z+2はa[2]のアドレスに等しくなる */
}
****
void cast(int *z);
main()
{
int a[3];
a[0]=2;
a[1]=3;
cast(a);
printf("%d\n",a[2]);
}
void cast(int *z)
{
*(z+2)=(*z)*(*z+1)); /* *z=a[0],*(z+1)=a[1],*(z+2)=a[2]となる */
}
****
void cast(int *z);
main()
{
int a[3];
a[0]=2;
a[1]=3;
cast(a);
printf("%d\n",a[2]);
}
void cast(int *z)
{
*(z+2)=(*z)*(*z+1)); /* a[2]=a[0]*a[1]となる */
}
****
void cast(int *z);
main()
{
int a[3];
a[0]=2;
a[1]=3;
cast(a);
printf("%d\n",a[2]); /* 2*3=6が表示される */
}
void cast(int *z)
{
*(z+2)=(*z)*(*z+1));
}
************************Next
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z)
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i);
}
}
****
11,22,33
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3]; /* 配列で変数を準備 */
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z)
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i);
}
}
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c); /* 配列の先頭アドレスを引き数として引き渡し */
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z)
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i);
}
}
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c); /* a=&a[0],b=&b[0],c&c[0]を示す */
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z)
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i);
}
}
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z) /* a,b,cをポインタx,y,zで受ける */
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i);
}
}
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z) /* z=c[0],z+1=c[1],z+2=c[2]と等しくなる */
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i);
}
}
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z) /* x=a[0]列、y=b[0]列、z=c[0]列に等しい */
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i);
}
}
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z)
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i); /* *(z+i)=c[i], *(x+i)=a[i],*(y+i)=b[i]を示す */
}
}
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]);
}
void tasu(int *x,int*y,int*z)
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i); /* c[i]=a[i]+b[i] となる */
}
}
****
void tasu(int*x,int*y,int*z);
main()
{
int a[3],b[3],c[3];
a[0]=1;a[1]=2;a[2]=3;
b[0]=10;b[1]=20;b[2]=30:
tasu(a,b,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]); /* c[0]=a[0]+b[0]=11 */
} /* c[1]=a[1]+b[1]=22 */
void tasu(int *x,int*y,int*z) /* c[2]=a[2]+b[2]=33 */
{
int i;
for(i=0;i<3;i++)
{
*(z+i)=*(x+i)+*(y+i);
}
}