我在C中试验了指针的行为.我编写了以下程序:
#include <stdio.h>
main(){
int a = 1;
printf("%p\n", &&a);
}
Run Code Online (Sandbox Code Playgroud)
我知道这个程序会给出错误.因为地址的地址不明确,这将变得非常递归.但是当我尝试编译程序时,它给出了一个我无法理解的错误.
错误:标签'a'已使用但未定义
printf("%p \n",&& a);
它是什么意思label ‘a’ used but not defined?
&&是真正的gcc扩展,但不是变量.它用于标签.
&&a用于获取当前函数中定义的标签的地址.
在你的情况下,编译器推断出a,后面是&&运算符,label但是你label a的代码中没有任何定义,所以这就是错误.