相关疑难解决方法(0)

三元运算符?:vs if ... else

在C++中,?:运算符比if()... else语句更快?它们在编译代码中有什么区别吗?

c++ performance conditional-operator

69
推荐指数
4
解决办法
9万
查看次数

?: 运算符在 C 中究竟是如何工作的?

我有一个问题,编译器如何对以下代码进行操作:

#include<stdio.h>

int main(void)
{
  int b=12, c=11;
  int d = (b == c++) ? (c+1) : (c-1);
  printf("d = %i\n", d);
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么结果是???d = 11.

c syntax increment conditional-operator post-increment

10
推荐指数
3
解决办法
422
查看次数

c中使用三元运算符的错误

我在C中有一段代码如下:

main()
{
    int a=10, b;
    a>=5 ? b=100 : b=200 ;
    printf("%d" , b);
}
Run Code Online (Sandbox Code Playgroud)

在unix中运行gcc编译器上的代码会将编译时错误生成为'赋值左值所需的左值',并将错误指向b = 200,而在使用Turbo C编译的窗口中,将200作为输出.

任何人都可以解释一下这种情况究竟发生了什么?

c gcc turbo-c

6
推荐指数
2
解决办法
1588
查看次数

Objective-C运算符(?)和(:)

什么做?:表示在这里?

#define MAX(a,b) ( ((a) > (b)) ? (a) : (b) )
Run Code Online (Sandbox Code Playgroud)

objective-c operators

4
推荐指数
3
解决办法
6825
查看次数

这个运算符在 C++ 中有什么作用?

:在 C++中做什么?? : 它与运营商有什么区别吗?例如在下面的代码中:

    //  Extracting the coefficients and exponents as numbers
    int expon[21] = { 0 };
    int coeff[21] = { 0 };
    for (int i = 0; i < monoms; ++i)
    {
        int monomSize = monomStr[i].size();
        for (int j = 0; j < monomSize; ++j)
        {
            if (monomStr[i][j] == '^')
            {
                expon[i] = stoi(monomStr[i].substr(j + 1, monomSize - j));
                coeff[i] = stod(monomStr[i].substr(0, j));
                break;
            }
        }
    }
    //  Looking for the max of exponents    
    int maxExponent …
Run Code Online (Sandbox Code Playgroud)

c++

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

我正在使用的这个功能是什么?它有效,但为什么?

我在网上发现了这篇文章,并认为我会尝试将空字符串样式方法应用于我的excel范围值.有时它有一个值,有时它没有,显然double不喜欢空值.

这是我的小片段.

double valTotal = (rngTotal.Value != null ? 1 : 0);
Run Code Online (Sandbox Code Playgroud)

我的问题是我用上面的代码做了什么?它看起来像一行中的if语句,其中"1"是"then"而"0"是"else".是对的吗?最重要的是,这个语法的名称是什么,所以我可以找到更多相关信息?

c#

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

这个程序的逻辑是什么?

我在书中遇到了一个问题,它要求我写出以下程序的输出.

#include<stdio.h>

int main()
{
     int j=4;
     ( !j != 1 ? printf("\nWelcome") : printf("GooD Bye"));
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

我基本上无法理解在运行程序时如何打印Welcome.任何人都可以在运算符层次结构的帮助下解释,编译器根据表达式计算出什么值?

c

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

什么是"返回p?memcpy(p,s,len):NULL;" 意思?

什么意思是" 返回p?memcpy(p,s,len):NULL; "在下面的代码中?(更一般地说,条件运算符是什么,a ? b : c?)

char * strdup(const char * s)
{
  size_t len = 1+strlen(s);
  char *p = malloc(len);

  return p ? memcpy(p, s, len) : NULL;
}
Run Code Online (Sandbox Code Playgroud)

c ternary-operator conditional-operator

0
推荐指数
2
解决办法
640
查看次数