2
에 내가 행동을 알고 호기심이 증가 :잘못된 다차원 배열 변수는 C에, C
int x[10][10];
y = x[++i, ++j];
내가 그 길을 잘못 알고있다. 이 경우 컴파일러가하는 일과 프로그래머가 코드에서 수행 할 작업이 무엇인지 알고 싶을뿐입니다.
에 내가 행동을 알고 호기심이 증가 :잘못된 다차원 배열 변수는 C에, C
int x[10][10];
y = x[++i, ++j];
내가 그 길을 잘못 알고있다. 이 경우 컴파일러가하는 일과 프로그래머가 코드에서 수행 할 작업이 무엇인지 알고 싶을뿐입니다.
쉼표 연산자입니다. 잘못 사용되었습니다. ++i, ++j
은 j + 1
의 값을 산출하며 2 가지 부작용을 가지고 있습니다 (i
및 j
수정). 모든 것은 기본적으로 ++i; y = x[++j]
을 의미합니다. y
의 유형에 따라 작동 여부는 다릅니다. 프로그래머가 잘 자신의 코드
에서이 작업을 수행하면 결과가 될 것입니다 무엇을
, 가장 가능성이 다른 프로그래머가 그/그녀의 살인적인 외모를 제공 할 것입니다.
아하하. 두 번째 질문에 대한 좋은 대답. +1 !! ;) – Kyrol
나는 단지 물건을 이해하지 않는다 : ++ 나는이 경우 사라졌다? – Kyrol
@Kyrol 사라지지 않았습니다. 아직 수행 중이며 (나중에 'i'를 확인할 수 있음) 값은 버려집니다. C에서는 모든 표현식에 부작용이 있으며 값을 산출합니다. 이 경우에 산출 된 값은'i'에 의존하지 않습니다. 그러나 부작용이 있습니다. – cnicutar