C 문자열은 문자 배열에서 문자 인덱스 strlen()
의 문자가 0으로 설정된 모든 비트를 의미합니다. '\0'
대신 0
코드가 사용 된 코드를 보았습니다. 그러나 sizeof(int) > sizeof(char)
부터 배열에 할당 된 공간을 넘어 실제로 쓸 수 있습니다. 제가 틀 렸습니다? 또는 컴파일러가 암시 적으로 int
을 char
으로 캐스팅합니까?' 0'대신 0으로 C- 문자열을 종료하는 것이 잘못 되었습니까?
3
A
답변
10
예. 틀 렸습니다. 0 값은 잘립니다. 결국, 당신이 쓸 경우 :
char c = 0;
당신은 컴파일러가 변수 C의 범위를 넘어서 쓰는 것을 기대하지 않을 것입니다. 다음과 같이 쓰면 :
char c = 12345;
다음 컴파일러에서 잘라내기를 경고해야합니다. GCC는 다음을 생성합니다.
c.c:2: warning: overflow in implicit constant conversion
그러나 여전히 변수의 경계를 넘어 서면 아무것도 작성되지 않습니다.
13
0
을 char
의 배열에 저장하면 int가 암시 적으로 char로 변환됩니다.
사실, '\0'
의 종류는 매우 somechararray[x]=0
및 somechararray[x]='\0'
는 의미 적으로 동일, int
(하나는 예상 할 수 것과는 달리)입니다.
개인적으로 나는 '\0'
으로 가서 더 명확하게하기 위해 문자열을 다루고 있습니다.
관련 문제
- 1. 왜 "루비 젬을 요구하는 것이 잘못 되었습니까?"
- 2. 다음 시나리오에서 iframe을 사용하는 것이 잘못 되었습니까?
- 3. IDE를 선호하지 않는 것이 잘못 되었습니까?
- 4. DataTable을 캐시에 저장하는 것이 잘못 되었습니까?
- 5. 헤더를 가져 오는 것이 잘못 되었습니까?
- 6. php.ini 경로가 잘못 되었습니까?
- 7. 작업 관리자에서 C# Mem 사용법이 잘못 되었습니까?
- 8. NLog의 구성이 잘못 되었습니까?
- 9. __VSFINDRESULT의 값이 잘못 되었습니까?
- 10. nokogiri : xpath가 잘못 되었습니까?
- 11. DES 예가 잘못 되었습니까?
- 12. 과제가 잘못 되었습니까?
- 13. HashMap 값이 잘못 되었습니까?
- 14. 코드 삽입이 잘못 되었습니까?
- 15. DefType 구문이 잘못 되었습니까?
- 16. 세션을 사용하는 것이 좋지 않을 때 무엇이 잘못 되었습니까?
- 17. 입력을 위해 html에 단락 태그를 사용하는 것이 잘못 되었습니까?
- 18. 재사용이 가능하지 않은 사용자 컨트롤을 만드는 것이 잘못 되었습니까?
- 19. SIP 메시지의 SDP 본문을 수정하는 것이 얼마나 잘못 되었습니까?
- 20. null 또는 0에 대한 참조를 설정하는 것이 잘못 되었습니까?
- 21. 선택 ByRef - VB.NET에서 잘못 되었습니까?
- 22. jquery animation 반복, 구문이 잘못 되었습니까?
- 23. C++의 'using'키워드를 헤더 파일에 사용하는 것은 잘못 되었습니까?
- 24. 어디에서 HQL의 계산이 잘못 되었습니까
- 25. 왜이 mysql 구문이 잘못 되었습니까?
- 26. NServiceBus : MSMQ 트랜잭션이 잘못 되었습니까?
- 27. JS/jQuery 코드가 잘못 되었습니까?
- 28. 글로벌 구성 클래스가 잘못 되었습니까?
- 29. 메서드 호출 순서가 잘못 되었습니까?
- 30. 웹 글꼴의 형식이 잘못 되었습니까?