void 型指標的小小trick

2021-08-24 20:10:17 字數 720 閱讀 3736

指標的概念還是有很多tricks的,這裡的p如果宣告為int*型的指標,則

2) p+sizeof(int)則是p的位址加上sizeof(int)個int型大小的位址增量;

#include

typedef struct test

int first;

int second;

}mytype;

int main()

mytype tt ;

int *p;

tt.first=100;

tt.second=20;

for(p=&tt;p< &tt + 1 ;p++ )

printf("%d\n",*p);

如果把p宣告為void*型的指標,則 p+sizeof(int) 就代表了上面多提到的第一種情況

#include

typedef struct test

int first;

int second;

int third;

}mytype;

int main()

mytype tt ;

void *p;

tt.first=100;

tt.second=20;

tt.third = 99;

for(p=&tt;p< &tt + 1 ;p += sizeof(int) )

printf("%d\n",*(int*)p);

泛型指標 void 的妙用

int p 上面的定義我們可以知道,p 稱之為指標變數,而並不是指標,而 p 我們才稱之為指標。所以也就有了如下的操作 int p int a 10 p a printf the value of p is p n p printf the value of p is d n p 上述的操作簡單地說...

void指標 void 的用法

指標有兩個屬性 指向變數 物件的位址和長度 但是指標只儲存位址,長度則取決於指標的型別 編譯器根據指標的型別從指標指向的位址向後定址 指標型別不同則定址範圍也不同,比如 int 從指定位址向後尋找4位元組作為變數的儲存單元 double 從指定位址向後尋找8位元組作為變數的儲存單元 1.void指標...

void指標 void 的用法

指標有兩個屬性 指向變數 物件的位址和長度 但是指標只儲存位址,長度則取決於指標的型別 編譯器根據指標的型別從指標指向的位址向後定址 指標型別不同則定址範圍也不同,比如 int 從指定位址向後尋找4位元組作為變數的儲存單元 double 從指定位址向後尋找8位元組作為變數的儲存單元 1.void指標...