안녕하세요 판타지코딩입니다!
C언어는 변수를 생성하고 데이터를 저장할 수 있습니다. 이 때 변수를 생성하면 데이터를 저장할 메모리 공간을 할당받고, 이 공간은 '주소값'이 존재합니다. 이 주소값을 표현하기 위해 바로 '&'기호를 활용합니다. 그런데 '&'기호가 주소값만을 의미하지 않고, 'AND'연산을 의미하기도 합니다. 오늘은 이 두 가지 의미를 구분하는 방법을 공부해 보겠습니다!
1. 주소값이 무엇일까?
주소값은 변수를 생성하고 데이터를 저장할 때 메모리 공간을 할당받는데, 이 때 공간의 '주소값'이 생성됩니다. 주소값을 확인하는 코드를 작성해 보겠습니다!
int num;
num = 10;
printf("%d", num);
printf("%d", &num);
int형 변수 num을 생성하고, 정수 10을 저장했습니다. 그럼 num은 10을 저장할 메모리 공간을 할당 받을 것입니다. printf 함수로 "%d"코드를 활용해 num을 출력한 첫 번째 코드는 num에 저장된 값인 10이 출력됩니다. 그리고 두 번째 printf문은 &num을 출력하므로 num의 주소값이 출력됩니다.
2. 'AND' 연산
'&'기호가 AND연산의 의미로 활용되는 경우를 보겠습니다.
int num1 = 1;
int num2 = 1;
int result = num1 & num2;
printf("%d", result);
int형 변수 num1에 1을 저장하고, num2에도 1을 저장합니다. 그리고 int형 변수 result에 num1과 num2를 &한 값을 저장합니다. 여기서 &기호는 num1과 num2 사이에 있으므로 num1과 num2를 AND 연산하는 것을 의미합니다. 1&1의 결과는 1이므로 printf문의 출력 결과는 1이 됩니다.
그럼 오늘은 주소값과 AND연산에 대해서 공부해 보았습니다. '&'기호가 어떤 것을 의미하는지 숙지하고 코드를 작성해 보시면 좋겠습니다.
감사합니다!
'C언어' 카테고리의 다른 글
C언어 do while문 공부하기! (0) | 2023.04.17 |
---|---|
C언어 포인터를 공부하자! - *과 &기호 공부하기! (1) | 2023.04.13 |
C언어 printf로 배열 출력하기 (0) | 2023.04.11 |
C언어 scanf 함수로 여러 개의 문자 입력 받기 - 문장 입력 받기 (0) | 2023.04.10 |
C언어 자료형 공부하기 - int, float, double, long (1) | 2023.04.06 |