본문 바로가기

자료형2

[C언어] * 연산자와 [ ] 연산자 : 포인터를 대상으로 사용할 수 있는 연산자 앞에서 말한 바와 같이 포인터 변수와 함께 배열명이 포인터로 사용된다. 단 그 둘의 차이점은 변수로 사용되느냐 상수로 사용되느냐였다. 보통 요소의 순서를 나타낼 때 사용하는 [ ]연산자, 포인터를 선언하거나 어떤 메모리에 접근할 때 사용하는 * 연산자로 익숙하지만, 우리가 알고 있는 포인터 외에 배열에서 배열의 이름으로 쓰이고 있는 배열명도 동일하게 포인터(어느 메모리를 가리킨다)로서 기능을 하기 때문에, 포인터나 배열명이나 둘 다 포인터를 피연산자로 하는 * 연산자와 [ ] 연산자를 사용할 수 있다. 다시 정리를 하자면, 포인터는 가리키고 있는 대상의 주소값을 가지고 있지만, 그 뿐 아니라 대상에 대한 (메모리에 접근하는 방식을 결정할) 자료형에 대한 정보까지 같이 가지고 있어야 포인터라고 할 수 있다. 2020. 8. 14.
[C언어] 포인터 변수에 있어 자료형의 의미 1 포인터 변수를 선언할 때 사용되는 * 연산자 그와 더불어 그 앞에 일반 변수와 같이 자료형을 표현하는데, 이 자료형은 포인터 변수에 관한 내용이 아니라, 포인터가 가리키는 변수의 값의 자료형에 관한 것이다. int * ptr 이라고 할 때, 포인터 변수 ptr 앞에 붙는 자료형 int는 ptr이 가리키는 변수(엄밀히 말하면, 그 변수의 메모리에 저장된 값)의 자료형을 나타낸다. int ptr = &num에서 처럼, 그냥 일반 변수 ptr에 변수 num의 주소값을 저장할 수는 있지만, 이럴 경우, 일반 변수 ptr은 변수 num의 주소값 외에는 num이라는 변수(메모리)에 저장된 값에 대한 정보는 알 수가 없다. 여기서 자료형 int는 오롯이 ptr이라는 변수가 정수형이라는 정보일 뿐이다. 그래서, 1 2.. 2020. 8. 9.