C语言如何获取结构体中指定元素的大小?sizeof ( (X*)0 ) -> Y)(空指针操作)
生活随笔
收集整理的這篇文章主要介紹了
C语言如何获取结构体中指定元素的大小?sizeof ( (X*)0 ) -> Y)(空指针操作)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
獲取結構體的大小,這好辦,這樣就可以了:
#include <stdio.h>struct user {char name[20];char age[10]; };int main() {printf("%d\n", sizeof(user));//30return 0; }但是如果要獲取結構體中某個元素大小,在不創建結構體的情況下,如何得到呢?
可以這么操作:
#include <stdio.h>struct user {char name[20];char age[10]; };int main() {printf("%d\n", sizeof((user*)0));//4printf("%d\n", sizeof((user*)0)->name);//20printf("%d\n", sizeof((user*)0)->age);//10return 0; }這種用法被網友稱為空指針操作,大概等價于:
#include <stdio.h>struct user {char name[20];char age[10]; };int main() {user* a = 0;//user* a = NULL;printf("%d\n", sizeof(a->age));//10return 0; }至于為什么能寫在同一行上表達,我就不了解了,匿名指針??
參考文章1:c語言如何求得結構體內某個元素的長度
參考文章2:C語言 泛型鏈表 如何計算(結構體中各元素)相對內存地址?(字節對齊,結構體對齊)offsetof()函數 & ( (struct X*)0 ) -> Y)語法
總結
以上是生活随笔為你收集整理的C语言如何获取结构体中指定元素的大小?sizeof ( (X*)0 ) -> Y)(空指针操作)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 结构体里的元素前面有一点“.”代
- 下一篇: C语言 泛型链表 如何计算(结构体中各元