計算結構體、數組、指針的sizeof


1. 結構體的sizeof

 

題目:

sturct aa
{
in num;
char name[10];
};

struct bb
{
int a;
float b;
struct aa c;
};

struct bb a;

計算 sizeof(a) 的值

----------------------

計算過程:

結構體a為bb類型,計算sizeof(a),就是將bb類型中,所有的成員的sizeof求總和。如果有數組,則乘上數組的長度。

所以
1. bb 中a的長度 2(int);
2. bb 中b的長度 4(float);
3. bb 中的c又為結構體,其類型為aa. 其長度為:
    num的長度 2(int)
    name的長度 為 1 * 10 = 10 (char長度為1)


所以總長度為 2 + 4 + 2 + 10 = 18.  即sizeof(a) =18

==========================================================================

2. 數組和指針

double a;

double *b;

double c[5];

char* pt[3];

char pq[3];


分別計算 a, b , c, pt, pq 的 sizeof


解答:
size(a) = 8;
size(b), 為求指針的sizeof,永遠為2;
size(c), 8 * 5 = 40;
size(pt), 首先pt為一個數組,長度為3。並且里面的元素都是指向char的指針。
  所以sizeof(pt) = 3 * 2 = 6
sizeof(pq), = 3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM