본문 바로가기

C기초

(3)
<메모리> 문자열과 메모리 1. 문자열 * 문자열 - cs50수업을 듣는 동안 string 자료형을 사용하기 위해서 cs50라이브러리를 사용했다. - 이 때의 문자열은 문자의 배열이므로 다음과 같이 메모리에 저장된다. (종단문자포함) - 실제로 c언어에는 string이라는 별도의 자료형은 존재하지 않으며, cs50라이브러리에서는 string을 다음과 같이 정의해두었다. typedef char *string - 따라서 string타입의 정의 없이 문자열을 출력하려면 다음과 같이 작성한다. #include int main(void) { char *s = "HARRY"; printf("%s\n", s); // HARRY printf("%p\n", s); // 0x402002 } - 이 때 포인터를 출력하면 문자열의 가장 첫 값인 H에 ..
<메모리> 메모리와 포인터 1. 16진수 - 컴퓨터 과학에서는 숫자를 16진수로 표현하는 일이 많다. 그 이유는 16진수가 10진수에 비해 2진수를 훨씬 더 간단하게 나타낼 수 있어서 컴퓨터 친화적이기 때문이다. - 예를 들어, 11110000(2) 이라면 16진수는 4자리씩 끊어서 f0이라고 나타낸다. 즉 4비트씩 간단하게 나눠진다. - 주로 16진수를 나타낼 때에는 앞에 0x를 붙여서 0xf0과 같이 구분하여 나타낸다. - 16진수는 정보를 훨씬 더 짧게 표현할 수 있다는 장점도 있다. 2. 메모리 주소 * 메모리 주소 - 정수형 변수 n에 24라는 값을 저장하고 출력한다고 가정하자. - n은 int 자료형이므로 메모리 어딘가에서 4바이트 만큼 자리를 차지한다. - n은 메모리상에서의 주소값을 갖고 있다. 메모리 상에서의 주소..
<C언어 기초> 07. 문자열 · 문자열 * 문자열과 문자 - 우리는 지금까지 문자열을 사용하기 위해서 string자료형을 사용하였다. 문자열(string)은 실제로는 문자(char)자료형 데이터들의 배열이다. - string s = "HI!"; 와 같은 문자열 s가 정의 되어있다고 한다면 메모리 상에 다음과 같이 저장될 것이다. - s는 문자의 배열이므로 s[0] 과 같은 방법으로 문자에 접근할 수 있다. - \0은 문자열의 끝을 나타내는 널 중단 문자이다. 이는 모튼 비트가 0인 1바이트이다. - 이번에는 여러 문자열의 배열을 보자. string names[3]; names[0] = "HARRY"; names[1] = "IU"; names[2] = "SUZY"; printf("%s\n", names[0]); printf("%c%c..