标签: unary-operator

为什么GCC定义一元运算符'&&'而不是仅使用'&'?

正如在这个问题中所讨论的,GCC定义了非标准的一元运算符&&来获取标签的地址.

为什么它定义一个新的运算符,而不是使用运算符的现有语义&和/或函数的语义(where foo&fooboth都产生函数的地址foo())?

c gcc addressof unary-operator

24
推荐指数
2
解决办法
2509
查看次数

如何在C中打印内存地址

我的代码是:

#include <stdio.h>
#include <string.h>

void main()
    {
    char string[10];
    int A = -73;
    unsigned int B = 31337;

    strcpy(string, "sample");

    // printing with different formats
    printf("[A] Dec: %d, Hex: %x, Unsigned: %u\n", A,A,A);
    printf("[B] Dec: %d, Hex: %x, Unsigned: %u\n", B,B,B);
    printf("[field width on B] 3: '%3u', 10: '%10u', '%08u'\n", B,B,B);

    // Example of unary address operator (dereferencing) and a %x
    // format string 
    printf("variable A is at address: %08x\n", &A);
Run Code Online (Sandbox Code Playgroud)

我在linux mint中使用终端编译,当我尝试使用gcc编译时,我收到以下错误消息:

basicStringFormatting.c: In function ‘main’:
basicStringFormatting.c:18:2: warning: …
Run Code Online (Sandbox Code Playgroud)

c printf pointers memory-address unary-operator

21
推荐指数
1
解决办法
6万
查看次数

C# 编译器中的 array[^1] 是什么意思?

int[] numbers = new int[10];
numbers[9] = 10;
Console.Write(numbers[^1] == numbers[numbers.Count()-1]); //true
Run Code Online (Sandbox Code Playgroud)

Index of 如何^1返回数组中的最后一项?

^1C# 编译器中的含义是什么?

与 相比,它有性能优势吗numbers[numbers.Count()-1]

c# indexing unary-operator

21
推荐指数
1
解决办法
3万
查看次数

当p指向(整数)索引数组时,“-1 [p]”是什么?

今天,我偶然发现了一个谜语,这给我带来了新的惊喜。

我不认为下面的示例中的-1 [p]可以编译,但是可以。实际上,x最终为-3。

    int x;
    int array[] = {1, 2, 3};
    int *p = &array[1];
    x = -1[p]
Run Code Online (Sandbox Code Playgroud)

我在互联网上搜索了-1 [pointer]之类的东西,但找不到任何东西。好的,我承认很难输入正确的搜索查询。谁知道为什么-1 [p]编译而X变为-3?

c arrays pointers unary-operator postfix-operator

20
推荐指数
4
解决办法
2946
查看次数

在javascript中解释+ var和-var一元运算符

我试图在javascript中理解一元运算符,我在这里找到了这个指南http://wiki.answers.com/Q/What_are_unary_operators_in_javascript大部分都有意义,但我不明白的是以下示例将如何用于一个实际的代码示例:

+a;
-a;
Run Code Online (Sandbox Code Playgroud)

据我所知+ a; 意味着使变量成为a和-a的正值; 意味着使变量成为a的负值.我尝试了很多例子:

a = -10;
a = +a;
document.writeln(a);
Run Code Online (Sandbox Code Playgroud)

输出仍然是-10;

我也尝试过:

a = false;
a = +a;
document.writeln(a);
Run Code Online (Sandbox Code Playgroud)

输出为0;

这些一元运算符的实际代码示例是什么?

javascript unary-operator

18
推荐指数
1
解决办法
6555
查看次数

加号在Python中的变量前面做了什么?

在我必须维护的项目中有以下一些Python代码:

# If the `factor` decimal is given, compute new price and a delta
factor = +factor.quantize(TWOPLACES)
new_price = +Decimal(old_price * factor).quantize(TWOPLACES)
delta = new_price - old_price
Run Code Online (Sandbox Code Playgroud)

这里的问题是+变量前面的目的.

Python文档调用一元加运算,其"产生的数值参数不变".它可以安全地移除吗?

(顺便提一下,代码是我前一段时间编写的,希望我已经吸取了教训 - 如果测试存在,或者如果在评论中澄清使用小数一元加上,那么这不是一个问题.)

python decimal unary-operator

16
推荐指数
1
解决办法
3542
查看次数

将一元运算符联合起来是否有意义?

来自http://en.cppreference.com/w/cpp/language/operator_precedence的C++运算符优先级表(我知道它不是规范性的,但标准不讨论优先级或关联性)将一元运算符标记为右/左关联.

从对不同问题的讨论中,我怀疑.将一元运算符联合起来是否有意义?

c++ operators unary-operator associativity

15
推荐指数
1
解决办法
4830
查看次数

一元+运算符会进行类型转换吗?

直到现在我才相信没有使用一元+算子.

但后来我遇到了以下示例:

char ch;
short sh;
int i;

printf("%d %d %d",sizeof(ch),sizeof(sh),sizeof(i)); // output: 1 2 4

printf("%d %d %d",sizeof(+ch),sizeof(+sh),sizeof(i)); // output: 4 4 4
Run Code Online (Sandbox Code Playgroud)

这是否意味着+在这里进行类型转换?

因为它的行为与以下相同

printf("%d %d %d",sizeof((int)ch),sizeof((int)sh),sizeof(i)); // output: 4 4 4
Run Code Online (Sandbox Code Playgroud)

这迫使我认为+是在进行类型转换.

但后来我尝试了 double

double f;
printf("%d %d",sizeof(+f),sizeof((int)f),sizeof(f));  // output: 8 4 8
Run Code Online (Sandbox Code Playgroud)

这迫使我重新思考一元运算+符.

所以我的第二个问题是:一元+算子对算子有特殊影响sizeof吗?

c sizeof unary-operator integer-promotion

15
推荐指数
1
解决办法
2210
查看次数

+ =和= +之间有什么区别?

+ =和= +之间有什么区别?具体来说,在java中,但一般而言.

java syntax increment operators unary-operator

13
推荐指数
4
解决办法
1755
查看次数

一元加(+)对文字字符串

今天我写了一个表达式:

"<" + message_id + "@" +  + ">"
                          ^
                          |
                          \____  see that extra '+' here!
Run Code Online (Sandbox Code Playgroud)

并且对它实际编译感到惊讶.(PS message_id是一个QString,它也适用于std :: string)

我经常做这样的事情,在我工作的时候遗漏一个变量,我希望编译器能告诉我在哪里我仍然缺少条目.决赛看起来像这样:

"<" + message_id + "@" + network_domain + ">"
Run Code Online (Sandbox Code Playgroud)

现在我想知道为什么+一元运算符对字符串文字有效!?

c++ string-literals unary-operator

13
推荐指数
1
解决办法
736
查看次数