1

我想在一行中创建一个指向值的指针;我想要与此相同的功能:

int i = MY_VALUE
int * j = &i;

但是,我想在一行中执行此操作,并且不想使用两个变量。我知道我可以这样做:

int * i = new int (MY_VALUE);

但我不想使用动态内存;我想使用静态内存。

有没有一种方法可以在一行中使用一个变量静态地分配一个指向值的指针?

4

2 回答 2

3

如果你必须...

int i = 5, *p = &i;
于 2016-04-13T21:18:48.653 回答
2

不,您不能拥有指向值的指针,只能拥有指向变量的指针或指向对象 (lvalue) 的指针

为了详细说明,从 C 开始,引用C11第 §6.5.3.2 章来说明&运算符的用法

一元运算&符的操作数应该是一个函数指示符、一个 []或一元运算符的结果*,或者是一个左值,它指定一个不是位域且未使用寄存器存储类说明符声明的对象。

所以,类似的东西

int * p = &10;

纯粹是无效的。

于 2016-04-13T21:14:09.513 回答