指標的概念還是有很多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指標...