如何宣告雙指標并直接從普通變數賦值?
int a = 5;
int* b = &a;
int** c = &b;
int** d = &&a;//This does not work
int** e = &(&a);//This does not work
uj5u.com熱心網友回復:
如何宣告雙指標并直接從普通變數賦值
你不能。“雙指標”不是 C 中的特殊結構。它是指標到指標的簡稱。指標總是指向一個變數,即具有記憶體位置的東西。&a是一個“右值”,而不是一個變數。它沒有記憶體位置,因此您不能指向它。
uj5u.com熱心網友回復:
&&a由于其他答案中描述的原因,該方法不起作用。
但是,您可以借助C99 中添加的復合字面量在單個運算式中形成所需的指標。您可以將這些文字視為未命名的區域變數。復合文字不是臨時的,而是完全合法的左值。采取他們的地址是安全的。
int** d = &(int*){&a};
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/359877.html
