相关疑难解决方法(0)

C和C++之间的条件运算符差异

我在某处读到?:C 中的运算符在C++中略有不同,有些源代码在两种语言中都有不同的作用.不幸的是,我找不到任何地方的文字.有谁知道这有什么区别?

c c++ conditional-operator

46
推荐指数
2
解决办法
6292
查看次数

为什么使用三元运算符的数组初始化是非法的?

C让我char经常交替使用指针和数组,我经常认为它们是完全可互换的.但是下面的代码证明了这不是真的.任何人都可以解释为什么在const char d[]下面的代码中使用三元运算符的初始化是非法的?

/* main.c */
#include <stdio.h>

int main()
{
  const char* a = "lorem";
  const char b[] = "ipsum";
  int* p;
  const char* c = ( *p ? "dolor" : "sit" );
  const char d[] = ( *p ? "amet" : "consectetur" ); // Why am I an error?
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

汇编:

> gcc -g main.c 
main.c: In function \u2018main\u2019:
main.c:10:20: error: invalid initializer
   const char d[] = ( *p ? "amet" …
Run Code Online (Sandbox Code Playgroud)

c arrays ternary-operator

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

标签 统计

c ×2

arrays ×1

c++ ×1

conditional-operator ×1

ternary-operator ×1