C指针è¿ç®—æ—¶å‡åŽ»

时间:2017-04-08 04:43:35

标签: c

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)?

1 个答案:

答案 0 :(得分:1)

指针算法与普通算术有很大ä¸åŒã€‚在指针算术a-1中,其中a是指针并ä¸æ„味ç€a的值å‡åŽ»1.它æ„味ç€è¿”回一个å•ä½çš„内存。

在您的示例中,pa-pb并ä¸ä»£è¡¨pa-pb的值。一个intå˜é‡éœ€è¦4个字节,因此pa-pb表示返回三个int以从pb到达pa。

对于int,一个å•ä½çš„内存是4个字节,浮动8个字节,char 1个字节。 注æ„: 这些值会在系统之间å‘生å˜åŒ–,通常是这些值。