计算一种类型对象个数的注意点
@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,对象个数
再牛逼的梦想也架不住傻逼似的坚持