[C언어] 배열은 주소값이다.
d배열이 주소값이라니 이게 무슨 허무맹랑한 소리인가 싶을 수 있다. 물론, 배열 안에는 값들이 들어있는 것이 맞다. 그러나, 우리가 정의한 배열의 이름. 그 이름에는 주소값 지정되어있다. 이해가 되지 않아도 좋다. 아래의 설명을 보도록 하자. 우리가 int a[5] = {1,2,3,4,5}; 라고 배열 a를 정의 및 초기화 했다고 해보자. 이때, 배열 a를 하나의 방 관점으로 본다면, 배열 a의 각각의 인덱스(a[0], a[1], ... 과 같은 것)들은 배열 a 안의 또다른 방이라고 생각할 수 있다. 그러니까, 내가 말하고 싶은 바는 무엇이냐면 배열 a라는 것에도 주소가 있고, 그 배열 안의 인덱스들에도 따로 주소가 존재한다는 것이다. 그렇기에 배열의 이름은 주소값이다. 한가지 코드를 보며 이해해보도록..
2023. 5. 18.
[C언어] 포인터 - 정의, 연산자, 선언, 상호관계성
포인터란? c언어에서 포인터란 주소값을 저장하는 변수이며, '포인터 변수' 라고도 부릅니다. char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장합니다. int n = 10; int *ptr = &n; printf("%d, %d", ptr, *ptr); 위의 코드에서, *prt = &n이라고 하여 마치 *ptr이라는 변수에 n의 주소값이 들어간 것처럼 보이나, 결과를 보면 알 수 있다시피, [*포인터_변수명 = 주소값]과 같이 포인터 변수를 초기화하더라도 포인터_변수명에는 특정 주소값이 들어가는 것이고, *포인터_변수명에는 특정 주소값내의 특정 값이 들어감을 알 수 있다. 포인터 연산자 C언어에서 포인터와 연관되어 사용되는 연산자는 다음과 같습니다. 1. 주소..
2023. 5. 16.