본문 바로가기
컴퓨터 사이언스/C언어

[C언어] & 연산자 (Ampersand, 앰퍼샌드)

by 메리뉴데이 2020. 8. 9.

 

 

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등 여러 프로그래밍 언어에서 주로 AND 연산자로 사용된다.

 

 

3) & 연산자가 단항 연산자(1개의 자료만을 대상으로 산술적인 처리를 수행)로 쓰이면,

변수의 주소를 나타낸다.

 

int var = 17;

int * ptr = &var;

이라고 하면, (포인터)변수 ptr에는 변수 var의 주소가 담겨 있는 것이다.