- 论坛徽章:
- 0
|
本帖最后由 hbmhalley 于 2012-07-23 04:13 编辑
回复 375# caboy_cu
1. 轻易不要掐
- User@Explorer-PC ~/work
- $ gcc -xc - <<EOF
- > #include <stdio.h>
- > int main (void) {
- > int a[2][2] ;
- > printf ("a[0]+1 = %p\n"
- > "&a[0][1] = %p\n"
- > "a[1] = %p\n" ,
- > a[0] + 1 ,
- > &a[0][1] ,
- > a[1]) ;
- > return 0 ;
- > }
- > EOF
- User@Explorer-PC ~/work
- $ ./a.exe
- a[0]+1 = 0x28ac54
- &a[0][1] = 0x28ac54
- a[1] = 0x28ac58
复制代码 2. pscore的意思是&(score[0])[0],至于score[0]之外的事都不好说,因为这超出了 pscore 的义务范围
举个例子,a[2][3],pscore=&a[0][0],a[0]的地址是xxx, 完全可以为pscore分配5个bits,xxx00 xxx01 xxx10 分别指向 a[0][0],a[0][1],a[0][2]; xxx11 用来表示“one past the last element of the array object”
这时候要是硬让pscore去指向八竿子之外的东西,是会溢出的。 |
|