int a[ ] ={1,3,5,7,9,11,13,15,17,19};
int *pa = &a[4],*pb = &a[1];
pa-pb
的价值是多少?ç”案:3,但如何?ä¸åº”该是12(就åƒæˆ‘打å°pa
å’Œpb
ä¸€æ ·ï¼Œè¦ä»”细检查,得到12)?
ç”案 0 :(得分:1)
指针算法与普通算术有很大ä¸åŒã€‚在指针算术a-1
ä¸ï¼Œå…¶ä¸a
是指针并ä¸æ„味ç€a
的值å‡åŽ»1.它æ„味ç€è¿”回一个å•ä½çš„内å˜ã€‚
在您的示例ä¸ï¼Œpa-pb
并ä¸ä»£è¡¨pa-pb
的值。一个intå˜é‡éœ€è¦4个å—èŠ‚ï¼Œå› æ¤pa-pb
表示返回三个int以从pb
到达pa
。
对于int
,一个å•ä½çš„内å˜æ˜¯4个å—节,浮动8个å—节,char 1个å—节。
注æ„: 这些值会在系统之间å‘生å˜åŒ–,通常是这些值。