提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
第八章课后答案
提示:以下是本篇文章正文内容,下面案例可供参考
1、第一题
自己写的答案
ints | 100 | ip | 112 |
ints[4] | 50 | ip[4] | 80 |
ints+4 | 116 | ip+4 | 128 |
*ints + 4 | 14 | *ip+4 | 44 |
*(ints + 4) | 50 | *(ip+4) | 80 |
ints[-2] | 未知 | ip[-2] | 20 |
&ints | 100 | &ip | 未知 |
&ints[4] | 116 | &ip[4] | 128 |
&ints+4 | 420 | &ip+4 | 未知 |
&ints[-2] | 未知 | &ip[-2] | 104 |
但是其中有几个是不对的。
ints | 100 | ip | 112 |
ints[4] | 50 | ip[4] | 80 |
ints+4 | 116 | ip+4 | 128 |
*ints + 4 | 14 | *ip+4 | 44 |
*(ints + 4) | 50 | *(ip+4) | 80 |
ints[-2] | 非法 | ip[-2] | 20 |
&ints | 100 | &ip | 未知 |
&ints[4] | 116 | &ip[4] | 128 |
&ints+4 | 420 | &ip+4 | 未知 |
&ints[-2] | 非法 | &ip[-2] | 104 |
10、第十题
int array[4][2]
array????????1000
array + 2????????1032
array[3]????????1012
array[2] - 1? ? ? ? 1004
&array[1][2]? ? ? ? 1008
&array[2][0]? ? ? ? 1008
上面的答案是针对整形长度为2的情况下。下面是在codeblock软件上,整形长度为4的结果
int main()
{
int array[4][2];
printf("%d\n",sizeof(int));
printf("%p\n",array);
printf("%p\n",array + 2);
printf("%p\n",&array + 2);
printf("%p\n",array[3]);
printf("%p\n",array[2] - 1);
printf("%p\n",&array[1][2]);
printf("%p\n",&array[2][0]);
return 0;
}
//4
//0061FF00
//0061FF10
//0061FF40
//0061FF18
//0061FF0C
//0061FF10
//0061FF10
一开始还是有点晕的。然后查了书。文件描述。array是指向一行数组的指针。array+1则地址移动一行地址。*(array+1)或array[1]则标识了一个包含2个整型元素的子数组。array[1]+1则是在这行数组中移动地址。所以也就清晰起来。
这个题目就说明了一件事情。对于二维数组array,array的地址值和&array的地址值是一样的。但是一个是指向一行数组,一个是指向整个二维数组。但是值是一样的。数组名是数组第一个元素的地址。对于二维数组,数组名就是其中第一行数组的地址。
其中&array+2还值得继续探讨。?
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。