#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int x = 65;
int *ptr = &x;
char * a= (char *)ptr;
cout<<(int)*(a);
getch();return 0;
}
Sixeof(PTR)和sizeof(a)中顯示器4
的sizeof(int)的顯示4和sizeof(char)的顯示1
所以65被存儲在4個字節即
00000000 00000000 00000000 01000001和的第一字節地址存儲在PTR有趣的問題幫助
在上面的代碼我有型鑄造整型*爲char *在一個動機來打印第一個字節存儲在X(int類型)的值。
因此,類型轉換後「a」存儲第一個字節地址,即包含在ptr中 現在顯示(int)* a應該只考慮顯示值的第一個字節。 但輸出是65而不是0(第一個字節值)..我在哪裏錯了..?
我打聽是
char * ptr1;
ptr1++; //Ptr1 goes to the next byte..*ptr1 will display only 1 byte value
int * ptr2;
ptr1++; //Ptr2 goes to the next 4 byte..*ptr2 will display value conmtain in 4 bytes
PS - 我正在開發-C++工作
sizeof(char)總是1,根據定義 – 2010-09-06 12:52:33