Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 프로그래머가 알아야 할 모든 일반적인 정의되지 않은 동작은 무엇입니까?

<시간/>

C++에는 정의되지 않은 몇 가지 동작이 있습니다. 이들은 C++에서 몇 가지 작업을 수행하여 식별됩니다. 그러한 직접적인 정의는 없습니다. 다른 목적으로 C++를 사용하려는 모든 프로그래머는 이 몇 가지 사항을 알고 있어야 합니다.

여기에서 몇 가지 C++ 코드를 볼 수 있습니다. 그리고 결과를 추측해 보세요. 코드는 일부 런타임 오류를 생성합니다.

0으로 나누기 오류가 정의되지 않았습니다.

예시 코드

#include 네임스페이스 std;int main() { int x =10, y =0; 정수 z =x / y; cout <<"완료" < 

출력

0으로 나누기 작업에 대한 런타임 오류

초기화되지 않은 변수를 사용하려고 합니다.

예시 코드

#include 네임스페이스 std;int main() { bool x; if(x ==참) cout <<"참값"; else cout <<"거짓 값";}

출력

거짓 값(컴파일러마다 다를 수 있음)

널 포인터 값에 액세스하려고 합니다.

예시 코드

#include 네임스페이스 사용 std;int main() { int *ptr =NULL; cout <<"포인터 값:" <<*ptr;}

출력

널 포인터 값에 접근하기 위한 런타임 오류

널 포인터 값에 액세스하려고 합니다.

예시 코드

#include 네임스페이스 std;int main() { int array[10]; for(int i =0; i<=10; i++) { cout <<배열[i] < 

출력

한계를 벗어난 항목에 액세스하는 동안 런타임 오류가 발생했습니다. 일부 컴파일러는 임의의 값을 반환할 수 있으며 오류는 반환하지 않을 수 있습니다. 

예시 코드

#include 네임스페이스 std;int main() { int x =INT_MAX; cout <<"x + 1:" < 

출력

x + 1:-2147483648signed int의 최소 수로 순환

문자열 리터럴에서 일부 문자를 변경하려고 합니다.

예시 코드

#include 네임스페이스 std;int main() { char *str ="Hello World"; str[2] ='x'; cout < 

출력

일부 상수 변수의 값을 변경하려고 하기 때문에 런타임 오류가 발생합니다.