# 指针笔试题解析（非编程题）上篇

题目组七：整型二维数组（sizeof）

# 引言

1、sizeof(数组名)，这里的数组名代表的就是整个数组，sizeof计算整个数组的大小。

2、&数组名，这里也是代表整个数组

# 题目组一：一维整型数组

int main()
{
int a[] = { 1,2,3,4 };
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(a+0));
printf("%d\n", sizeof(*a));
printf("%d\n", sizeof(a+1));
printf("%d\n", sizeof(a[1]));
printf("%d\n", sizeof(&a));
printf("%d\n", sizeof(*&a));
printf("%d\n", sizeof(&a+1));
printf("%d\n", sizeof(&a[0]));
printf("%d\n", sizeof(&a[0]+1));

return 0;
}

# 题目组二：一维字符型型数组（sizeof）

	char arr[] = { 'a','b','c','d','e','f' };
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(arr + 0));
printf("%d\n", sizeof(*arr));
printf("%d\n", sizeof(arr[1]));
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr + 1));
printf("%d\n", sizeof(&arr[0] + 1));

# 题目组三：一维字符型数组（strlen）

	printf("%d\n", strlen(arr));
printf("%d\n", strlen(arr + 0));
printf("%d\n", strlen(*arr));
printf("%d\n", strlen(arr[1]));
printf("%d\n", strlen(&arr));
printf("%d\n", strlen(&arr + 1));
printf("%d\n", strlen(&arr[0] + 1));


# 题目组四：字符串（sizeof）

	char arr[] = "abcdef";
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(arr + 0));
printf("%d\n", sizeof(*arr));
printf("%d\n", sizeof(arr[1]));
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr + 1));
printf("%d\n", sizeof(&arr[0] + 1));

# 题目组五：字符串（strlen）

	printf("%d\n", strlen(arr));
printf("%d\n", strlen(arr + 0));
printf("%d\n", strlen(*arr));
printf("%d\n", strlen(arr[1]));
printf("%d\n", strlen(&arr));
printf("%d\n", strlen(&arr + 1));
printf("%d\n", strlen(&arr[0] + 1));

# 题目组六：指针指向字符串

	char* p = "abcdef";
printf("%d\n", sizeof(p));
printf("%d\n", sizeof(p + 0));
printf("%d\n", sizeof(*p));
printf("%d\n", sizeof(p[1]));
printf("%d\n", sizeof(&p));
printf("%d\n", sizeof(&p + 1));
printf("%d\n", sizeof(&p[0] + 1));

printf("%d\n", strlen(p));
printf("%d\n", strlen(p + 0));
printf("%d\n", strlen(*p));
printf("%d\n", strlen(p[1]));
printf("%d\n", strlen(&p));
printf("%d\n", strlen(&p + 1));
printf("%d\n", strlen(&p[0] + 1));

sizeof ：

第七个：p[0]是第0个字符，&p[0]是第0个字符的地址，+1就是第一个字符的地址，大小是4.

strlen：

有可能第一个就碰到了，也有可能后面才碰到，这片新空间是未知的。

# 题目组七：整型二维数组（sizeof）

二维数组要相对复杂一些，但本质还是一样的。

a[1][i],a[2][i] ，所以a[0]就是二维数组第0行的数组名，数组名单独放在sizeof里计算的是数组的大小，就是a[0]数组的大小，4*4=16.

• 2
点赞
• 0
收藏
• 打赏
• 0
评论
07-06 105
09-08 2818
08-14 167
09-16 2048
07-16 184
09-13 142
02-22 3252
09-10 481
10-21 295
10-19 363
09-10 394

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

©️2022 CSDN 皮肤主题：游动-白 设计师：我叫白小胖

SAKURAjinx

¥2 ¥4 ¥6 ¥10 ¥20

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、C币套餐、付费专栏及课程。