본문 바로가기

주소값2

[C언어] * 연산자와 [ ] 연산자 : 포인터를 대상으로 사용할 수 있는 연산자 앞에서 말한 바와 같이 포인터 변수와 함께 배열명이 포인터로 사용된다. 단 그 둘의 차이점은 변수로 사용되느냐 상수로 사용되느냐였다. 보통 요소의 순서를 나타낼 때 사용하는 [ ]연산자, 포인터를 선언하거나 어떤 메모리에 접근할 때 사용하는 * 연산자로 익숙하지만, 우리가 알고 있는 포인터 외에 배열에서 배열의 이름으로 쓰이고 있는 배열명도 동일하게 포인터(어느 메모리를 가리킨다)로서 기능을 하기 때문에, 포인터나 배열명이나 둘 다 포인터를 피연산자로 하는 * 연산자와 [ ] 연산자를 사용할 수 있다. 다시 정리를 하자면, 포인터는 가리키고 있는 대상의 주소값을 가지고 있지만, 그 뿐 아니라 대상에 대한 (메모리에 접근하는 방식을 결정할) 자료형에 대한 정보까지 같이 가지고 있어야 포인터라고 할 수 있다. 2020. 8. 14.
[C언어] & 연산자 (Ampersand, 앰퍼샌드) 1) & 연산자가 1개이면 비트 연산자 AND를 나타낸다. 비트 연산자는 정수형 자료에서만 사용이 가능하다. 이때, & 연산자는 0과 1의 2진수로 되어 있는 비트 단위의 연산을 수행하는데, 대응되는 두 bit가 모두 1일 때만 결과가 1이다. 예를 들어, x: 1 0 0 1 0 1 0 1 y: 0 1 0 0 1 1 1 1 로 저장되어 있다고 하자. 그러면, x & y는 (x와 y를 &연산 하면) 0 0 0 0 0 1 0 1 이 된다. 2) & 연산자가 2개이면 논리연산자 AND를 나타낸다. &&는 논리곱(AND)이라고 하며, 양쪽 모두 참일 때만 참이다. 예를 들어, a: 참 b: 거짓 c: 참 이라고 하자. 그러면, a && b는 거짓이 되고, a && c는 참이 된다. C등 여러 프로그래밍 언어에서.. 2020. 8. 9.