KAIHATSUGIKEN GROUP

C PROGRAMMING LANGUAGE



********************************************************************************
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);
	}
}