我需要一个唯一的指针地址。
我不确定我是否需要给指针给予一个值,或者它是否在声明时得到一个地址。或者我是否需要初始化一个普通变量和/或初始化它。
int * my_ptr;
int * unique_address = my_ptr;
字符串
vs
int my_val;
int * unique_address = &my_val;
型
vs
int my_val = 5;
int * unique_address = &my_val;
型
请以引用<= C11标准、K&R 2或POSIX的形式为您的答案提供证明
2条答案
按热度按时间ufj5ltwl1#
第二种和第三种变体是正确的。变量在声明时被分配一个地址,并且您使用&前缀将该地址存储在指针中。(ISO/IEC 9899:201 x委员会草案,6.2.4(2))
xkftehaa2#
如果你只想要有效的地址而不需要底层对象(事实上你将拥有指针本身)。
字符串
您的示例:
第一个无效。
型
my_ptr
确实有一个不确定的值,因为它没有被初始化。你可以使用一个对它的引用来代替。型