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(
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/13 05:41:19
![C语言,#include #define f printf main(){\x05int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};\x05f(](/uploads/image/z/3490261-61-1.jpg?t=C%E8%AF%AD%E8%A8%80%2C%23include+%23define+f+printf+main%28%29%7B%5Cx05int+a%5B3%5D%5B4%5D%3D%7B0%2C1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%7D%3B%5Cx05f%28%22%25d%5Cn%22%2Ca%29%3B%5Cx05f%28%22%25d%5Cn%22%2C%2Aa%29%3B%5Cx05f%28%22%25d%5Cn%22%2Ca%5B0%5D%29%3B%5Cx05f%28%22%25d%5Cn%22%2C%26a%5B0%5D%29%3B%5Cx05f%28%22%25d%5Cn%5Cn%22%2C%26a%5B0%5D%5B0%5D%29%3B%5Cx05%5Cx05f%28%22%25d%5Cn%22%2Ca%2B1%29%3B%5Cx05f%28%22%25d%5Cn%22%2C%2A%28a%2B1%29%29%3B%5Cx05f%28%22%25d%5Cn%22%2Ca%5B1%5D%29%3B%5Cx05f%28)
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(
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));
}
怎么有几行带*运算符的还是输出地址,只有最后一行出去的是值,其他都是地址,意思是对于二维来说只要不指明准确的行和列都输出某行的首地址?搞晕了似懂非懂的,求教.
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(
f("%d\n",a);
f("%d\n",*a);
f("%d\n",a[0]);
f("%d\n",&a[0]);
f("%d\n\n",&a[0][0]); //都是首地址
f("%d\n",a+1);
f("%d\n",*(a+1));
f("%d\n",a[1]);
f("%d\n",&a[1]);
f("%d\n\n",&a[1][0]);//都是第二行元素的地址
f("%d\n",a+2);
f("%d\n",*(a+2));
f("%d\n",a[2]);
f("%d\n",&a[2]);
f("%d\n\n",&a[2][0]);//都是第三行元素的地址
f("%d\n",a[1]+1);
f("%d\n\n",*(a+1)+1);//都是第二行第二列的地址
f("%d,%d\n",*(a[1]+1),*(*(a+1)+1));//第二行第二列的内容
你得去看看书 二维指针和一维指针所指向的地址和内容比较容易搞混的 不是带*的就一定是指向内容 比如*(a+i)在一维里表示a[i]的内容 但是在二维里就是表示&a[i][0]是个地址
二维的内容一般都是*(*(a+i)+j)表示
我当初也看了老半天才知道 你看看这些输出结果 找找规律 自己归纳归纳哈