Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type X [10][5][10];
- d = { "bool": 1, "char": 1, "int": 4, "float": 4, "double": 8 };
- X:
- T=type(*)[5][10],
- sizeof(T) = 5*10,
- I
- X+k (X[k]):
- T=type(*)[5][10],
- sizeof(T) = 5*10*d[type],
- I+k(5*10)*d[type]
- *(X+k)+j (X[k][j]):
- T=type(*)[10],
- sizeof(T) = 10*d[type],
- I+k(5*10)*d[type]+j(10)*d[type]
- *(*(X+k)+j)+i (X[k][j][i]):
- T=type(*),
- sizeof(T) = d[type],
- I+k(5*10)*d[type]+j(10)*d[type]+i*d[type]
- int ex_1(){
- char X[10][5][10];
- cout << (int) X << " " << typeid(X).name() << " char (*)[5][10]\n";
- cout << (int) (*(*X-4)+2) << " == " << (((int) X)-4*10*1+2*1)
- << " " << typeid((*(*X-4)+2)).name() << " char (*)\n";
- cout << (int) X[-1] << " == " << (((int) X)-1*5*10*1)
- << " " << typeid(X[-1]).name() << " char (*)[10]\n";
- // both are undefined
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement