C++ 在变量声明中使用for循环
我可以在变量内使用for循环声明吗C++ 在变量声明中使用for循环,c++,C++,我可以在变量内使用for循环声明吗 int main() { int a = { int b = 0; for (int i = 0; i < 5; i++) { b += i; } return b; }; printf("%d", a); } intmain(){ int a={ int b=0; 对于(int i=0;i
int main() {
int a = {
int b = 0;
for (int i = 0; i < 5; i++) {
b += i;
}
return b;
};
printf("%d", a);
}
intmain(){
int a={
int b=0;
对于(int i=0;i<5;i++){
b+=i;
}
返回b;
};
printf(“%d”,a);
}
您可以使用lambda:
int main() {
int a = []{
int b = 0;
for (int i = 0; i < 5; i++) {
b += i;
}
return b;
}();
printf("%d", a);
}
如果您需要多个范围,请使用函数代替.
实际上是由C++委员会编写的。
constexpr
有许多有用的功能尚未被发现
constexpr int b(int l) {
int b=0;
for (int i = 0; i < l; i++)
b += i;
return b;
}
int main() {
constexpr int a = b(5);
printf("%d", a);
}
constexpr int b(int l){
int b=0;
对于(int i=0;i
使用函数/lambda。谢谢!我想在a
(无符号字符x=7
)上面声明另一个变量,然后我想返回x*b
。它告诉我错误:无效值不会被忽略,因为它应该是的,并且错误:“x”没有被捕获
。您需要捕获它,例如[x]{
但是没有代码很难说。请阅读更多关于lambdas和捕获的内容,例如,在这里或简单地用谷歌搜索这个术语,然后你会发现很多教程。非常感谢!我只是不知道这个术语。我们这里不讨论声明,甚至不讨论定义。我们讨论的是初始化,尤其是复制初始化。请看这里:。但是大量的投票和一个被接受的答案,所以一切都很好。+1从我这边开始。如果我们严格点的话:对给定问题唯一正确的答案就是:“不,不可能”
constexpr int b(int l) {
int b=0;
for (int i = 0; i < l; i++)
b += i;
return b;
}
int main() {
constexpr int a = b(5);
printf("%d", a);
}