본문 바로가기

CS/자료구조

(12)
[인프런|2강] C로 배우는 자료구조 | 문자열 문자열 char str[6]; str[0] = 'h'; str[1] = 'e'; str[2] = 'l'; str[3] = 'l'; str[4] = 'o'; str[5] = '\0'; 이런식인 경우 문자열에 끝에 '\0' 값을 넣어주지 않으면 제대로 동작하지 않는다. 문자열이 끝났는지 아닌지 알기 위해서 '\0' 써야한다. 단, char str[] = "hello"; char *str ="hello"; 과 같이 표현하는 경우 '\0'를 문자열 끝에 넣어주지 않아도 된다. 하지만 char *str ="hello"; 로 표현하는 경우 문자열 수정이 불가능하다하여 string literal이라고 한다. 엄밀하게 말하면 문자열 배열이 아닌 string literal이다. 사실 char str[] = "hello"..
[인프런|1강] C로 배우는 자료구조 | C언어 기초 문법 리뷰 1.C언어 기초 문법 리뷰 - 배열, 포인터, 문자열, 동적메모리할당 메모리 컴퓨터의 메모리는 데이터를 보관하는 장소 바이트(8bit) 단위로 주소가 지정 모든 변수는 주소를 가진다. 포인터: 메모리의 주소를 값으로 가지는 변수 type-name * variable-name; int * ptr; int c = 12; int *p; p = &c; // *p =>12, p=> 변수 c의 주소가 담김 int x=1, y=2; int * ip; ip = &x; y = *ip; *ip = 0; 포인터를 쓰는 이유: 데이터 할당을 더욱 유연하게 하기위해서 저장하려는 데이터 사이즈를 (배열 등에) 크게하기도 했다 작게하기도 하기 위해, 연결리스트 등 다른 자료구조에서도 데이터를 할당의 유연성을 위해 포인터와 배열 배..