char a[2] = { '1','2' }; printf("%d", strcmp(a, "12"));
结果为 1
一个没有结束符,一个有结束符,为什么没有的比有的大?
业精于勤,荒于嬉;行成于思,毁于随。
Char는 일반적으로 부호 없는 정수로 간주되고, a[2]는 임의의 값이며, 0보다 크고 0과 같은 두 가지 상황만 있습니다.
대부분의 경우 a[2]는 '보다 큽니다. ', 1을 반환합니다.
이전 질문과 유사합니다. 해당 질문에 대한 제 답변은 군중에 의해 짓밟혔습니다. 문자열은 문자열이고 문자 배열은 문자 배열입니다. strcmp 함수를 사용하려면 문자열만 전달해야 합니다. . 문자 배열을 사용하려면 수동으로 :
얻는 결과는 실제로 1이 아니라 임의의 값입니다. strcmp 함수는 a의 길이를 모르기 때문에 메모리에 대한 범위를 벗어난 액세스를 수행합니다.
a
Char는 일반적으로 부호 없는 정수로 간주되고, a[2]는 임의의 값이며, 0보다 크고 0과 같은 두 가지 상황만 있습니다.
대부분의 경우 a[2]는 '보다 큽니다. ', 1을 반환합니다.
이전 질문과 유사합니다. 해당 질문에 대한 제 답변은 군중에 의해 짓밟혔습니다. 문자열은 문자열이고 문자 배열은 문자 배열입니다. strcmp 함수를 사용하려면 문자열만 전달해야 합니다. . 문자 배열을 사용하려면 수동으로 :
을 지정해야 합니다. 으아악얻는 결과는 실제로 1이 아니라 임의의 값입니다. strcmp 함수는
a
의 길이를 모르기 때문에 메모리에 대한 범위를 벗어난 액세스를 수행합니다.