计算一种类型对象个数的注意点

@2018-10-29

【问题】

类型指针 Type_t *p;

类型数组 Type_t array[10];

p = &Type_t array[5];

p - &Type_t array[10] = ?

计算结果是地址差还是对象个数?

【结果】

验证代码如下:

 1 #include <stdio.h>
 2 
 3 
 4 typedef struct _Type
 5 {
 6     char a;
 7     short b;
 8     int c;
 9     float d;
10     double e;
11 }Type_t;
12 
13 
14 int main(void)
15 {
16     int res;
17     Type_t array[10];
18     Type_t *p;
19 
20     printf("sizeof(Type_t) = %d\n", sizeof(Type_t));
21 
22     p = &array[5];
23     
24     printf("p = %#X\n", p);
25     printf("&array[0] = %#X\n", &array[0]);
26 
27     res = p - &array[0];
28 
29     printf("%d\n", res);
30 }

 结果是 5,对象个数

posted @ 2018-10-29 17:14  壹点灵异  阅读(222)  评论(0编辑  收藏  举报