&는 비트 연산자, &&는 논리 연산자입니다.
#include <stdio.h>
void main() {
int i=3, j=4;
printf("%d", 2&&3);
printf("%d",i<2 || j<3);
해당 코드를 보고 && 논리연산자가 무엇인지 잠깐 고민했다. &와 어떤 차이가 있는지 까먹었기 때문..
그래서 정리한다!
두개의 논리 값이 모두 참일때만 결과가 참
#include <stdio.h>
void main() {
int i=3, j=4;
printf("%d", 2&&3);
printf("%d",i<2 || j<3);
여기에서는 2&&3이 True이기때문에 1이 출력된다.
만약 코드가 &&가 아닌 &이라면?
#include <stdio.h>
void main() {
int i=3, j=4;
printf("%d", 2&3);
printf("%d",i<2 || j<3);
2&3 의 답을 구하고 싶다면
2를 2진수로
3을 2진수로 변환하고 AND 연산의 결과인 2를 출력한다.