sizeof

来源:互联网 发布:mac资源库在哪里 编辑:程序博客网 时间:2024/06/17 07:24
struct COW {
int num;
int MakeMilk;

};

 COW* cow = NULL;

 cow = (COW* )malloc(sizeof(COW)*n);


 sizeof(COW)= 8 :two Int

 sizeof(cow) = 4 :pointer size, because cow is the dynamic array, it can not be know how many memberships by size operation

 sizeof(cow[0]) = 8 : struct size

 sizeof(*cow) = 8 : cow is the pointer pointed at the frist address. *cow is the structure first COW 

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

const char* word[6] = {"Red Alder", "Ash", "Aspen", "Basswood", "Yellow Brich", "Red Alder"};

printf("%d\n", sizeof(word)); 24 = 6*4 , where 4 is the size of char*,because "word" is a static array
printf("%d\n", sizeof(*word)); 4 *word = word[0]  it is the pointer size (char*)
printf("%d\n", sizeof(word[0]));4 
printf("%d\n", sizeof(*word[0]));1  *word[0] = word[0][0]= 'R'  a character is 1
printf("%d\n", sizeof(word[0][0])); 1 word[0][0] = R 
printf("%d\n", sizeof(&word[0][0])); 4 &word[0][0] = word[0]

printf("%d\n", sizeof(&word[0][1])); 4 &word[0][1] = word[0]+1   cout<<&word[0][1] == "ed Alder"

原创粉丝点击