我正在閱讀指針如何工作here,因爲我試圖理解qsort()。但導向給出了這樣的代碼:int * pint; pint =(int *)數據;意思?
// increaser
#include <iostream>
using namespace std;
void increase (void* data, int psize)
{
if (psize == sizeof(char))
{ char* pchar; pchar=(char*)data; ++(*pchar); }
else if (psize == sizeof(int))
{ int* pint; pint=(int*)data; ++(*pint); }
}
int main()
{
char a = 'x';
int b = 1602;
increase (&a,sizeof(a));
increase (&b,sizeof(b));
cout << a << ", " << b << endl;
return 0;
}
沒有解釋
pint=(int*)data;
和
的意思就行了。我明白其餘的含義,但對我來說,這對我來說(char *)數據可能意味着什麼沒有意義。它指向char的值嗎?但是如果char是一個變量類型,怎麼會這樣呢?
'(int *)'將'data'強制轉換爲指向'int'的指針。 – juanchopanza
http://www.learncpp.com/cpp-tutorial/613-void-pointers/ – Mati
這是** C風格演員**。 –