문자 배열은 문자 배열이고 문자열은 문자열입니다. 문자열만 가지고 있습니다. , 문자 배열은 이런 방식으로 처리되지 않습니다. 이 세 가지 코드 조각의 출력 결과는 모두 임의의 값이어야 합니다. strlen이 실수로 생각하는 a의 메모리 오프셋에 데이터가 있으므로 읽은 수를 반환합니다. 바이트가 도착했습니다.
비추천을 받았어요... 비추천을 하신 분은 배열의 길이가 문자열의 실제 길이보다 길면 컴파일러가 자동으로 다음을 추가한다고 생각할 수도 있습니다. 실제로 이는 컴파일러의 특정 구현에 따라 달라지며 C 표준에서는 이에 대해 언급하지 않습니다.
예 없음 후행 문자열에서
strlen
을 호출하는 것은 정의되지 않은 동작입니다.先分析您的代码:
으아아아进一步理解
으아아아 으아아아strlen 说明
문자 배열은 문자 배열이고 문자열은 문자열입니다. 문자열만 가지고 있습니다. , 문자 배열은 이런 방식으로 처리되지 않습니다. 이 세 가지 코드 조각의 출력 결과는 모두 임의의 값이어야 합니다. strlen이 실수로 생각하는 a의 메모리 오프셋에 데이터가 있으므로 읽은 수를 반환합니다. 바이트가 도착했습니다.
비추천을 받았어요... 비추천을 하신 분은 배열의 길이가 문자열의 실제 길이보다 길면 컴파일러가 자동으로 다음을 추가한다고 생각할 수도 있습니다. 실제로 이는 컴파일러의 특정 구현에 따라 달라지며 C 표준에서는 이에 대해 언급하지 않습니다.으아악