"~의 주소"를 의미하는 연산자예시) &n -> n이 있는 메모리의 위치를 알려줌&n을 위한 형식 지정자, 포인터포인터 : 컴퓨터의 메모리 주소를 가리키는 것출력 값 : 0x7ffe00b3adbc (메모리 위치)"그 주소로 가줘" 라는 의미의 연산자예시) \*&n :
정보를 어디에 저장할 수 있을지 정확하게 알아보자🔥
정수 포인터는 아래 처럼 저장했었다문자열 포인터는 아래처럼 저장한다❗️문자열의 주소 : "문자 배열의 첫번째 바이트 주소"그리고 마지막 바이트에 0을 저장해 끝이라는 것을 알려준다.string을 정의하려면 이렇게 정의하면된다.
지난시간에 이어 문자열을 하나씩 출력하려면 \*s(s가 가르키는값) 을 이용해 접근하여 출력한다.s라는 포인터의 값에는 문자열 "E"의 첫번째 값의 메모리 주소만 저장된다.s 포인터의 값 = 문자배열의 첫번째 값에 해당하는 메모리 주소 포인터의 값은 %p 라는 형식지정
위 코드를 실행해보면 s와 t에 같은 문자를 넣어도 다르다고 출력된다왜그럴까?s와 t가 각각 다른 메모리에 저장되었기 때문이다.첫번째 메모리 공간이 0x123, 두번째 메모리 공간이 0x456이라고 하자그럼 컴퓨터는 (s==t) 라는 조건문을 만났을때 서로의 메모리 주
문자열을 입력받아 대문자로 바꿔주는 프로그램이다.t만 대문자로 변경했는데 왜 s도 대문자로 출력되는걸까?s의 주소값을 t에 할당했기 때문에 포인터 s와 t에 저장된 메모리 주소값이 같다.그 상태에서 대문자로 변경했기때문에 메모리 주소 안에있는 값도 같은것이다.위처럼 m
컴퓨터의 메모리는 일반적으로 아래처럼 공간을 나누어 사용된다.머신코드 (clang 명령어 처럼 실행 시 100101 형태로 저장하는 코드)전역변수힙 ( malloc() 처럼 메모리를 동적으로 할당할때 사용되는 부분)스택 ( main()함수, void()함수 등..)
컴퓨터메모리를 더 효율적으로 관리하기 위해 새로 정의하는 구조체일종의 메모리 레이아웃, 지도라고 생각하면 좋다.: 값들의 리스트를 저장하는 방법배열로도 저장할 수 있으나, 배열로 저장하는방법은 배열 전체를 새 공간에 복사하기때문에 O(n)만큼의 시간이 소요되었다. -
사전 구조체 정의 코드 (연결리스트 : 도입 강의 중)첫 연결리스트를 구현하기 위해서는 빈 박스(포인터)가 필요하다.빈 박스를 list라고 해보고 이것을 다음 node를 가리키는 포인터로 정의하자.다음으로, 2와 포인터를 정의하기 위해서 malloc() 함수로 메모리
이진 검색 트리는 하나의 노드가 두개의 자식노드를 가지며, 왼쪽의 자식노드는 자신의 값보다 작고, 오른쪽의 자식 노드는 자신의 값보다 크다.이러한 트리 구조는 이진 검색을 수리하는데 유리하다.
해시 테이블이란 '배열과 연결 리스트를 조합한 것' 이다.쉬운 예로 위 그림처럼 각 사람의 이름이 해시 테이블에 저장되며, 해시함수는 '이름의 가장 첫 글자' 인 경우를 생각해보자.이런 경우 알파벳 개수 (26개)에 해당하는 포인터가 필요하며, 각 포인터는 알파벳을 시
트라이란 '각각의 노드가 배열로 이루어진 트리'다.이렇게 '트리'형태의 자료 구조로 찾으면 걸리는 시간이 '문자열의 길이'에 의해 한정된다.일반적인 영어 이름의 길이를 n이라고 했을때, 검색 시간은 O(n)이 되지만, 대부분의 이름은 그리 크지 않은 상수값이므로 O(1
큐란 '선입 선출의 특징을 가진 자료구조' 다.'First In First Out' 즉, 선착순의 특징을 가진 자료구조를 말한다.배열이나 연결리스트를 통해 구현 가능하다.스택이란 '후입 선출의 특징을 가진 자료구조' 다.'Last In First Out' 메일의 특징을