- 論壇徽章:
- 0
|
本帖最后由 sudayly 于 2010-10-15 13:25 編輯
如題,不用sizeof操作符,求一個(gè)整型變量占用的字節(jié)數(shù)。
基本思路:
創(chuàng)建一個(gè)有兩個(gè)元素的整型數(shù)組a[2],然后把第二個(gè)元素的地址減去第一個(gè)元素的地址就是一個(gè)整型變量占用的字節(jié)數(shù)
代碼:- #include <stdio.h>
- int main(int argc, char *argv[])
- {
- int a[2];
- printf("%x %x\n", &a[0], &a[1]);
- int nbytes;
- nbytes = int(&a[1]) - int(&a[0]);
- printf("%d\n", nbytes);
- int nbytes2;
- nbytes2 = &a[1] - &a[0];
- printf("%d\n", nbytes2);
- return 0;
- }
復(fù)制代碼 輸出如下:
22ff50 22ff54
4
1
問題:
為什么輸出的第二行和第三行不一致,或者說
nbytes = int(&a[1]) - int(&a[0]); 和
nbytes2 = &a[1] - &a[0];
有什么不同? |
|