小编ame*_*een的帖子

三元运算符c ++中的return语句

我使用三元运算符编写了绝对函数,如下所示

int abs(int a) {
 a >=0 ? return a : return -a;
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息

../src/templates.cpp: In function ‘int abs(int)’:
../src/templates.cpp:4: error: expected primary-expression before ‘return’
../src/templates.cpp:4: error: expected ‘:’ before ‘return’
../src/templates.cpp:4: error: expected primary-expression before ‘return’
../src/templates.cpp:4: error: expected ‘;’ before ‘return’
../src/templates.cpp:4: error: expected primary-expression before ‘:’ token
../src/templates.cpp:4: error: expected ‘;’ before ‘:’ token
../src/templates.cpp:5: warning: no return statement in function returning non-void
Run Code Online (Sandbox Code Playgroud)

如果我这样写

return a>=0 ? a : -a;
Run Code Online (Sandbox Code Playgroud)

我没有得到任何错误.这两者有什么区别?

c++ return ternary

31
推荐指数
5
解决办法
3万
查看次数

为什么c ++程序员使用!=而不是<

在c ++引言中,第95页作者说c ++程序员倾向于使用!=而不是<在编写循环时.

for (vector<int>::size_type i = 0; i != 10; ++i) is preferred instead of 
for (vector<int>::size_type i = 0; i < 10; ++i) 
Run Code Online (Sandbox Code Playgroud)

我在加速c ++中读了同样的东西.有人可以解释这背后的基本原理

c++

25
推荐指数
6
解决办法
2041
查看次数

功能调用顺序

为了表达

(func1() * func2()) + func3()
Run Code Online (Sandbox Code Playgroud)

将func1()*func2()首先计算,因为它有括号或可以按任何顺序调用函数

首先是func3()然后是(func1()*func2())

c c++

6
推荐指数
3
解决办法
2371
查看次数

使用size_t声明最大的数组

我想声明一个非常大的数组.我发现数组的最大大小是size_t,定义为UINT_MAX

所以我写了这样的代码

int arr[UINT_MAX];
Run Code Online (Sandbox Code Playgroud)

当我编译它时,它表示数组维度溢出

但是当我写这样的时候

size_t s = UINT_MAX;
int arr[s]; 
Run Code Online (Sandbox Code Playgroud)

它编译得当.有什么不同

c++ arrays size-t

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

c ++中最短的程序

我最近遇到了这个编译的代码,但运行了分段错误(g ++).这是topcoder topcoder配置文件的原始链接

#include <iostream>
int main = ( std::cout << "Hello world!\n", 42  );
Run Code Online (Sandbox Code Playgroud)

这也编译

int main=0;
Run Code Online (Sandbox Code Playgroud)

有人可以解释这个程序中发生了什么.使用g ++

c++

-9
推荐指数
4
解决办法
8089
查看次数

标签 统计

c++ ×5

arrays ×1

c ×1

return ×1

size-t ×1

ternary ×1