1
7
不可以。在C语言中,只能得到指向存储区域的指针(即变量、数组元素或其他指针;它们称为“L值”),而不能指向任何表达式。无法获取指向没有定义存储区的表达式的指针(如加法或函数调用的结果)。然而,应该注意C++将这些规则与引用混淆,但为了清楚起见,我将把它排除在外。 指针并不神奇:最后,它们只是整数。因此,当你得到一个指针的指针时,就像你得到一个整数的指针一样。它没有更多的影响。
例如,如果您将指针指向
做这个,你
|
2
3
这不会,也不应该编译。 只能获取L值的地址。(请参见下面的说明) C++ 03 S5.3.1-2:
另外,您在这里使用的“引用”一词是错误的。&是用于不同事物的符号。其中之一就是声明引用,一元运算符的地址是不相关的。后者不称为引用。
变量的地址,因此
你不能给一个r-avlue分配任何东西。忽略常量之类的东西,你可以考虑R值,它必须出现在右手边。L值有点像左手边,但实际上它意味着它可以存储在存储位置(区别在于常量对象不能出现在左手边,但仍被视为L值)。 |
3
1
你不能把某个东西的地址取两次,所以上面的代码可能都不会编译(你试过吗?发生了什么事?). |
4
0
在你的表达中: *ptr是左值 &(*ptr)是右值 &(&,(*PTR))是一个不正确的表达式,因为您试图获取C++中不允许的rAuto的地址。 此外, &(*指针)=a; 格式错误,因为lhs表达式的类型为“int*”,其中rhs表达式的类型为“int”。C++不允许将“int”转换为“int *”。 |
5
0
不,不会的。
地址
|
6
0
1.不,这会导致编译错误
|
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |