在指標中什麼時候p f是合法的

2023-01-01 16:20:39 字數 1038 閱讀 2950

1樓:匿名使用者

什麼時候都是合法的,不過型別不同的話就需要強制型別轉換

2樓:鄂渚緒風

只能在申明一個指標型別變數的同時給它賦初值,這樣做才是合法的,不然的話就要寫成:p=&f;

3樓:匿名使用者

ls錯誤。

----

首先,f必需是左值表示式,否則&f這個表示式就是非法的。

編譯錯誤的例子:

char* p;

p = &('f'); /*錯誤,'f'不是一個左值,無法作為&的運算元。*/

其次,*p不能是常量。也就是p指向的型別不能是const型別。

編譯錯誤的例子:

char a = 'a';

char f = 'f';

char* const* p;

p = &a;

*p = &f; /*錯誤,p指向char*const型別,即char*指標常量,無法通過賦值修改。*/

最後,&f能夠隱式轉化為和*p相同的型別。

例如,p是一個二級指標,而f是兩次p解引用後的型別:

char a = 'a';

char f = 'f';

char* pa = &a;

char** p = &pa;

*p = &f;

邏輯錯誤,編譯應該至少產生警告的例子1:

char a = 'a';

char f = 'f';

char* pa = &a;

int** p = &pa;

*p = &f;

邏輯錯誤,編譯應該至少產生警告的例子2:

struct s ;

struct s a;

char f = 'f';

struct s* pa = &a;

char** p = &pa;

*p = &f;

====

[原創回答團]

4樓:豬頭或火寶寶

什麼意思,樓主把問題說清楚!!!

求助指標被free之後什麼時候是NULL 還是不可能是NULL

一個指標,除非本身等於null,否則free以後不會等於null。因為free不對指標的值做任何操作,而只是試圖改變指標指向的一片連續的儲存器空間的狀態。如果這片儲存器空間是malloc或其它相容方式 例如posix庫函式strdup 分配過來的,那麼會釋放這片空間,釋放的空間可以之後再次被分配。如...

在英語中字母子音c在什麼時候發音,什麼時候發

這事還是比較規律的.你會發現,在詞頭,c與母音搭配時,其中c和e及c和i一起時,都發s,如celebrate,center,cent cindy,cigar等,而c與a o u搭配時,就都發k,如,cake,canteen courier,college cure,cup.在詞中間的情況較多,不說了...

在英語的什麼情況中,什麼時候用is什麼時候用are什麼時候用

英語中的am,is 和are都是be的變化形式,這三個詞都是 是 的含義,根據不同的主語選用不同的動詞。用法 1 當主語是i時使用am。2 當使用表示複數的主語或使用 you 時則要用are。3 除以上情況外的,如主語是 she he it 或其他第三人稱單數名詞時則用is。示例 i am a te...