int a = 5;
printf("a = %d.\n", a); // 5
printf("a = %f.\n", a); // 乙個很奇葩的數字,一看就知道是亂碼
乙個指標涉及2個變數:
int *型別說白了就是指標型別,只要是指標型別就都是佔4位元組,解析方式都是按照位址的方式來解析(意思是裡面存的32個二進位制加起來表示乙個記憶體位址)的。
對於指標所指向的那個變數來說,指標的型別就很重要了。
int a = 5;
int *p1 = &a;
float *p;
p = (float *)p1;
printf("*p1 = %d.\n", *p1); //5
printf("*p = %f.\n", *p);
int a = 66666;
char *p1 = &a;
printf("*p1 = %d.\n", *p1);
short *p2 = &a;
printf("*p2 = %d.\n", *p2);
C 指標型別與強制轉換
指標是乙個特殊資料型別,也可以理解為混合資料型別。指標具有資料型別資訊及資料在記憶體空間的位址。問題分析 c 指標雖然像int型別或是long int型別一樣存放著記憶體位址。但是我們取得的指標位址,不僅僅只有位址值,因為指標型別是一種混合型別。這時我們就需要強制型別轉換。我在qt 5.14版本編譯...
指標強制型別轉換
當我們初始化乙個指標或給乙個指標賦值時,賦值號的左邊是乙個指標,賦值號的右邊是乙個指標表示式。在我們前面所舉的例子中,絕大多數情況下,指標的型別和指標表示式的型別是一樣的,指標所指向的型別和指標表示式所指向的型別是一樣的。例十四 1。float f 12.3 2。float fptr f 3。int...
指標型別強制轉換
問題為下 include void main 輸出為啥不是1呢 這個時候,我們可以看到函式式裡面有格式的轉換,如果格式轉換時存在除void格式外,還有兩個及兩個以上的格式的轉換,則這時候的指標所指的variable所佔的記憶體會產生變化,從而會使格式發生相應的變化 對於本題 當你強行將int指標變為...