我正在尝试制作一种新的编程语言,并且试图从C添加&
(指针指向)运算符。它的作用是什么?也就是说,它如何“创建”指针?为什么不能创建指向常量 1 的指针?我当前对运算符的实现如下,但是它也可以在常量上工作,所以我认为这不是C运算符的工作方式:
operator & (any one argument):
temp = allocate (typeof argument)
store argument in temp
return temp
1 :示例程序:
int main(){
int* x;
x = &1;
}
gcc
输出:
ptr.c: In function ‘main’:
ptr.c:3:6: error: lvalue required as unary ‘&’ operand
x = &1;
答案 0 :(得分:1)
C的一元&
为您提供了它所应用于的事物的地址。
例如,&x
给出了x
的地址。
它不会创建新变量,而是将x复制到该变量中,然后返回新变量的地址。它返回x
的地址,简单明了。
答案 1 :(得分:1)
C的一元“&”有什么作用?为什么对常量不起作用?
因为该语言不允许。
与其他语言(例如新语言&1
)一样, C 可以允许.NoOneIsHere
。仅仅C标准并没有看到这样做的好处。没有技术理由不这样做,只是没有理由这样做。
答案 2 :(得分:0)
&通常是引用类型,用于获取值地址,例如b =&b,b等于b的地址。