#include<stdio.h>
main()
{
unsigned char c;
typedef struct name {
long a;
int b;
long c;
}r;
r re = {3,4,5};
r *na = &re;
printf("%d", *(int*) ((char*)na + (unsigned int) & ((struct name *)0)->b));
}
OUTPUT:結構的偏移量是如何計算的?在這裏解釋printf語句?
我會感激如果有人詳細解釋printf語句是該類別中的程序在做什麼?據我說,int
是鑄造的。然後char
指針被鑄造成na
。但我無法理解整個聲明在做什麼?在這裏做什麼? b
不是指針,但它似乎被用作指針。我發現這個問題是C編程書籍之一。它似乎是計算結構抵消,但我仍然不知道如何。請幫助我詳細瞭解程序。
我的實際問題是瞭解printf聲明親愛的。仍然我在你嘗試使用你的答案 –
@PunitVara:你還缺少哪些部分?我可以擴大答案。一旦你理解了東西的抵消,其餘的都是普通指針算術。 – kfx
如果您逐步擴展該聲明,我非常感謝您。 –