문자열을 2 가지 방법으로 저장할 수 있습니다. 방법 1 메모리에C/C++에서 문자열, 배열 또는 포인터를 저장하는 데 더 효율적인 방법은 무엇입니까?
char *b="str";
사용 메모리가 4 바이트 정도로 문자열 "STR을"기억에서만 사용된다
방법 1 :하여 배열
char a[]="str";
방법 2.
방법 2에서 메모리는 '읽기 전용 메모리'에 문자열 "str"을 저장 한 다음 문자열의 첫 번째 문자에 대한 포인터를 저장하는 데 사용됩니다. 따라서 사용 된 메모리는 ROM에 문자열을 저장하기 위해 4 바이트, 그리고 첫 번째 문자에 포인터를 저장하는 데 8 바이트 (64 비트 컴퓨터에서) 여야합니다.
총 1 번째 방법은 4 바이트를 사용하고 방법 2는 12 바이트를 사용합니다. 따라서 방법 1은 C/C++에서 문자열을 저장하는 방법 2보다 항상 좋습니다.
방법 1에서 'a'는 여전히 구문 해석 적 설탕을 사용하여 데이터 "str"에 대한 포인터입니다. –
그리고 왜 'a'가 방법 1의 메모리를 차지하지 않는 걸까요? 당신 의견에'a'가 무엇입니까? – PeterK
컴퓨터 내부에 * "ROM"*이 없습니다 ... – specializt