重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
创新互联专业为企业提供北碚网站建设、北碚做网站、北碚网站设计、北碚网站制作等企业网站建设、网页设计与制作、北碚企业网站模板建站服务,10余年北碚做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
int main(void)
{
int ar[3][3]= { {1,2,3},
{4,5,6},
{7,8,9}
};
int num;
int i,j;
int k = 0,sum=0;
int (*ptr)[3];
ptr = ar;
num = sizeof(ar) / sizeof(ar[0]);
printf("num = %d\n",num);
printf("%d\n",*(*(ptr +0) + 1));
for(i = 0; i 3 ;i++)
{
for(j = 0 ;j 3; j++)
{
k += *(*(ptr + i)+j);
//sum += k;
}
}
printf("%d\n",k);
return 0;
}
扩展资料:
main()函数用法:
大多数UNIX系统对main函数提供了三个参数,原型如下:
intmain(intargc,char*argv[],char*env[]);
其中第三个参数是环境表地址。
ANSIC规定main函数只有两个参数,而且第三个参数与全局变量environ相比也没有带来更多益处,所以POSIX.1也规定应使用environ而不使用第三个参数。
通常用getenv和putenv函数来存取特定的环境变量,而不是用environ变量。
main函数的原型多是下面这种形式:
intmain(intargc,char*argv[]),参数argc代表了输入参数的个数,char*argv[]表示传入的参数的字符串,是一个字符串数组。
例如在linux平台下编写一个小程序:
int main(intargc,char*argv[])
{
int i;
printf("argc:%d\n",argc);
for(i=0;i<argc;i++)
{
printf("argv[%d]:%s\n",i,argv[i]);
}
exit(0);
}
用gcc编译后形成一个a.out的可执行的文件,运行a.out,其结果是:
argc=1,argv[0]=”a.out”
运行的程序的文件名,也占用一个参数位置,也就是说argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。这个赋值过程是操作系统完成的,只需要拿来用就可以了。
在命令行参数的提交中,系统会自动给指针数组后加上一个NULL,所以for(i=0;i<argc;i++)这句也可以换成while(*argv!=NULL)
int main(intargc)省略其它参数的定义也是可以的,这样运行时候argc就直接返回参数个数,而不返回其它。
运行命令行参数带有char*argv[]的时候,如果输入参数带有空格,应该用双引号括起来。
int AB[8][15] = {};
int CB[35][15] = {};
int AC[8][35] = {};
for(int x = 0; x 8;++x)
{
for( int y = 0;y 15; ++y)
{
for( int a = 0; a 35; a++ )
{
for( int b = 0; b 15 ; ++b )
{
if( y == b )
{
if( x 8 a 35 )
{
AC[x][a] = AB[x][y] + CB[a][b];
}
}
}
}
}
}
for(p=a;pa+12;p++)
1, p = a; 是ok的。
2, p a + 12; 就不ok了: a是一个二维数组,他的长度是12 * sizeof(int), 在32位机上是48, 这里的a+12 就是 a 地址后面的 12 * 48 的位置, a[0] + 12 是a地址后12 * 4的位置!