본문 바로가기

C 언어

(26)
2차원 배열 메모리 할당과 포인터 int* 와 int** 의 차이 정수는 메모리 공간 빌라 102호에 살고 있는 사람이다. 코딩나라에 사는 택배기사님은 정수 부모님이 보내신 귤 🍊 을 정수에게 보내야한다. 이 때 정수가 살고있는 102호의 문을 가리키는 것이 int* 이다. 즉 int*는 정수가 살고 있는 메모리 공간을 나타내는 주소를 가리키고 이 포인터를 따라가면 정수를 만날 수 있다. int** 는 메모리 공간 빌라의 우편번호와 같다. 즉 우편번호 int** 를 찾아가면 메모리 공간 빌라를 찾아갈 수 있고 그곳에서 특정 메모리 공간인 102호에 접근해 정수를 찾을 수 있다. 2차원 배열 이제 다음 단계로 넘어가보자. 택배 기사님은 백화점에서 구매하신 엄청 비싼 귤을 배달해야 한다. 엄청 비싸서 한 박스에 귤 3개가 정성스럽게 포장되어..
타입 캐스팅(Type Casting)과 역참조(Dereferencing) 1. 타입 캐스팅(Type Casting)타입 캐스팅은 변수나 상수의 데이터 타입을 다른 타입으로 변환하는 과정을 의미한다. C에서는 자동(암시적) 타입 변환과 명시적 타입 변환 두 가지 방식으로 타입 캐스팅을 수행할 수 있다. 자동 타입 변환 자동 타입 변환은 컴파일러가 소스 코드의 컨텍스트를 기반으로 자동으로 수행하는 타입 변환이다.예를 들어, int 타입의 변수에 float 타입의 값을 할당할 때, float 값이 int로 자동 변환된다.int num;float pi = 3.14;num = pi; // float에서 int로 자동 타입 변환. num은 3이 됨 명시적 타입 변환 명시적 타입 변환(또는 캐스팅)은 개발자가 직접 타입을 지정하여 수행하는 타입 변환이다.이는 괄호 안에 원하는 타입을 명시..