问题描述:
C语言,
#include
#define f printf
main()
{
\x05int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
\x05f("%d\n",a);
\x05f("%d\n",*a);
\x05f("%d\n",a[0]);
\x05f("%d\n",&a[0]);
\x05f("%d\n\n",&a[0][0]);
\x05
\x05f("%d\n",a+1);
\x05f("%d\n",*(a+1));
\x05f("%d\n",a[1]);
\x05f("%d\n",&a[1]);
\x05f("%d\n\n",&a[1][0]);
\x05
\x05f("%d\n",a+2);
\x05f("%d\n",*(a+2));
\x05f("%d\n",a[2]);
\x05f("%d\n",&a[2]);
\x05f("%d\n\n",&a[2][0]);
\x05
\x05f("%d\n",a[1]+1);
\x05f("%d\n\n",*(a+1)+1);
\x05
\x05f("%d,%d\n",*(a[1]+1),*(*(a+1)+1));
}
怎么有几行带*运算符的还是输出地址,只有最后一行出去的是值,其他都是地址,意思是对于二维来说只要不指明准确的行和列都输出某行的首地址?搞晕了似懂非懂的,求教.
#include
#define f printf
main()
{
\x05int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
\x05f("%d\n",a);
\x05f("%d\n",*a);
\x05f("%d\n",a[0]);
\x05f("%d\n",&a[0]);
\x05f("%d\n\n",&a[0][0]);
\x05
\x05f("%d\n",a+1);
\x05f("%d\n",*(a+1));
\x05f("%d\n",a[1]);
\x05f("%d\n",&a[1]);
\x05f("%d\n\n",&a[1][0]);
\x05
\x05f("%d\n",a+2);
\x05f("%d\n",*(a+2));
\x05f("%d\n",a[2]);
\x05f("%d\n",&a[2]);
\x05f("%d\n\n",&a[2][0]);
\x05
\x05f("%d\n",a[1]+1);
\x05f("%d\n\n",*(a+1)+1);
\x05
\x05f("%d,%d\n",*(a[1]+1),*(*(a+1)+1));
}
怎么有几行带*运算符的还是输出地址,只有最后一行出去的是值,其他都是地址,意思是对于二维来说只要不指明准确的行和列都输出某行的首地址?搞晕了似懂非懂的,求教.
问题解答:
我来补答展开全文阅读