내부 및 외부 축소가 다른 값을 생성하지 않을 경우 항상 동일한 값을 생성합니까? 나는 기능적인 언어 인 라켓에 대해 이야기하고 있습니다. 나는 라켓에있는 것처럼 더 효과적이지만 실제로 다른 결과를 초래할 가능성을 알고 있습니다. 그 일이 일어나는 경우를 만들 수는 없었지만 가능해야하고 알지 못할 수도있는 위험한 느낌이 들었습니다. 예 : ;inner re
나는 다음과 같은 코드 조각이 : 이제 int f(int &x, int c){
c = c - 1;
if (c == 0) return 1;
x = x + 1;
return f(x, c)*x;
}
을, 나는이 같은 위의 함수를 호출한다고 가정 int p = 5;
std::cout << f(p, p) << std::en
나는 ++ 2015 VC에 다음 코드를 시도 #include <iostream>
#include <string>
using namespace std;
int foo(int v)
{
cout << v << endl;
return 10;
}
string bar(int v)
{
cout << v << endl;
표현식을 계산 한 후 또는 전체 구문을 계산 한 후 후위 증가/감소 연산자를 평가합니까? #include<stdio.h>
void main()
{
int a=0;
int b=0;
printf("%d %d",a||b,b++); // Output is 1 0
}
내 컴파일러는 오른쪽에서 왼쪽으로 printf 인수를 계산
다음 코드 결과는 SIGSEGV이고 그 이유는 알 수 없습니다. #include <iostream>
using namespace std;
struct C {
C(int x) { ptr = new int(x); }
C(C&& c) { ptr = c.ptr; c.ptr = nullptr; }
int* ptr;
};
voi
의 우리가 다음 코드 조각을 가정 해 봅시다 : void foo(std::unique_ptr<Data> p1, std::unique_ptr<Data> p2){
bar(p1);
bar(p2);
}
int main(){
foo(std::unique_ptr<Data>{new Data}, std::unique_ptr<Data>{ne
고려 : int f() {
static int i = 0;
return i++;
}
struct Test {
int a, b;
Test() : a(f()), b(f()) {}
};
Test t;
나는 a 인해 struct에서의 선언의 순서에 b 전에 초기화되는 것을 알고있다. g(f(), f())에있는 f에
C는 guarantee any evaluation order 그렇게 f(g1()+g2(), g3(), g4())
같은 문장이 무엇 파이썬에 대해 (그들 모두 후 f()이 실행 될 수 있지만) 을 g1(), g2()이 g3()는, 어떤 순서로 g4() 실행할 수 없습니다합니까? 파이썬 2.7에 대한 나의 실험은 이것이 왼쪽에서 오른쪽 순서의 평가 인 것처
를 잘 작성 전에 평가 될 것입니다 ... 하지만 프로젝트가 : 나는 깨달았다 int[] df = null; //GetDataFrame()
int xIndex = 12; //GetLearningIndex()
df[0] = 1 % GetLearningIndex();
을하고, 때 GetDataFrame 반환 널 및 GetLearningIndex는 0을