|
1
13
这样做的目的是将数组强制转换为
然后,它添加四个字节,将其移到下一个值(稍后将对此进行详细介绍)。
然后它把它变成了一个
从技术上讲,此代码有三个方面存在错误。
第二个问题是演员阵容
最后一件事是格式说明符。整数的说明符是
有一个 第四个问题:代码很糟糕。这可能是为了学习,但是 讨厌 |
|
2
9
阵列:
在内存中的布局为(假设
分解表达式:
这是一种非常愚蠢的方法,因为它本质上是不可移植的(对于
|
|
|
3
2
它首先隐式地将数组a转换为指向其开头的指针。然后它将指针强制转换为char*并将值递增4。值4恰好与系统上的sizeof(unsigned)相同,因此实际上它从一开始就向前移动了一个元素n。然后它将地址强制转换为int*并读取它所指向的值(运算符*)。此结果值打印为无符号整数,这是因为int和unsigned的大小相同。 内存中静态2D数组的布局是这样的,所有元素实际上都以一维数组的顺序存储。 |
|
|
4
1
它可以容纳4个字符,每个字符是一个字节[在C语言中不是在Java/C语言中,等等]。 数组在内存中连续分配。将无符号数组视为char*时,需要将指针移动4步才能到达数组中的下一个无符号值。 |
|
|
5
1
首先,创建一个大小为3x4的2维阵列。
之后
将数组转换回int时,
|