如有错误请及时通知我改正,我会第一时间在博客上更新,避免误人子弟
//2019 10 11
//coded by user0914 , Visual Studio 2017
//如有错误,请通知我更正
#include <stdio.h>
//2016
//20191113更正3题4题
//1.A
//2.C
//3.B
//int a[M][N];
//定义了一个M行N列的数组,总元素个数为M*N。
//其第一维长度,也就是总的行数,在C语言中,就是定义中的M。
//类似的,第二维长度,也就是每行元素个数。在C语言中就是定义中的N。
//4.A//B没有分号
//5.A
//6.D
//int main() {
// int a[5] = { 1,2,3,4,5 }, *p = a;
// //a[0] = { 1,2,3,4,5 };
// printf("&p+5 %X\n", &p + 5);
// //printf("**a+1 %X\n", **a+1);//Error C2100 illegal indirection
// printf("**a+1 is illeagal!\n");
// printf("&*a+3 %X\n", &*a+3);
// printf("*(a+0) %X\n", *(a+0));
// printf("*(a+1) %X\n", *(a + 1));
// //虽然首元素地址和首地址在数值上是相同的,但是它们所表示的意义却不相同
// //只有使用“&数组名”时,才是取数组首地址;直接打印数组名或者&数组名[0]都是取得数组首元素地址。
// //首地址 + 1得到的是跳过整个数组的地址,首元素地址 + 1得到的是下一个元素的地址。
// printf("test\n");
// printf("&a %X\n", &a);
// printf("a %X\n", a);
// printf("&a[0] %X\n", &a[0]);
// printf("&a+1 %X\n", &a+1);
// printf("a+1 %X\n", a+1);
// printf("&a[0]+1 %X\n", &a[0]+1);
//}
//7.B
//int main() {
// int *p1, m;
//