본문 바로가기
  • 오늘도 신나게

코딩을 합시다/최대한 쉽게 설명한 C 언어12

초등학생도 이해하는 C 언어 - & 와 && 의 차이점 C 언어를 처음 접하고 코딩을 시작하면 상당히 헷갈리는 부분이 생깁니다. 그 대표적인 예가바로 & 와 && 그리고 | 와 || 입니다. 둘 다 AND 와 OR 연산임은 맞는데 뭐가 다를까요? 먼저 & 와 | 는 비트 연산자이고, && 와 || 는 논리 연산자입니다. 정확히 설명을 하자면, & 는 특정 변수를 각 비트별로 AND 연산을 하여 그 값을 도출해 내는 것이고, && 는 변수의 값 자체의 논리 값을 AND 연산해 결과 값 또한 논리 값으로 표현 됩니다. 따라서 비트 연산과 논리 연산은 그 용도가 다릅니다. & 는 비트단위로 사칙연산과 같은 값의 계산을 위해 사용되고, && 는 True / False 를 구분 하기 위해 사용됩니다. 먼저 비트연산을 알아보겠습니다. 비트 연산을 이해 하기 위해서는 비.. 2020. 5. 23.
초등학생도 이해하는 C 언어 - 비트연산자 사람들이하는 계산방식과 다르게 컴퓨터가 하는 연산에는 비트연산 이라는 것이 있어요. 비트 연산을 하기 위해서는 데이터의 저장 형태를 이해 해야합니다. 일반적으로 int 형으로 선언된 변수는 4byte 크기 입니다. 1byte 는 8bit 이므로 int 형은 32개의 bit 가 연속으로 이어진 형태 입니다. 만약 64 라는 데이터를 int 형의 변수에 저장 한다면 , 실제로 저장된 데이터는 아래와같은 형태 입니다. 00000000000000000000000001000000 이것을 보기 쉽게 바이트 단위로 나눠서 표시하면 맨 우측부터 비트자릿수 0 부터 시작 됩니다. 위에서 저장한 64 라는 정수는 실제로 6번 비트만 1인 형태로 저장됨을 알 수 있습니다. 이것을 hex 값으로 표시하면, 0x00000040.. 2020. 5. 22.
초등학생도 이해하는 C 언어 - 조건 연산자 (삼항 연산자) 조건 연산자 또는 삼항 연산자라 불리는 ? : 입니다. 기본적인 사용 형태는 (조건)? (조건이 참 일때 ) : (조건이 거짓일때) 입니다. 예제 코드 #include void main(void) { int a=2; int b=3; int c=0; c = (a>b) ? a : b; printf("c = %d \n",c); } 조건 (a>b) 가 거짓 이므로 c = b 가 됩니다. 따라서 출력되는 결과 값은 c = 3 이처럼 값을 넣을때 주로 사용되지만 마치 if else 문과 비슷하게 사용도 가능 합니다. #include void main(void) { int a=2; int b=3; int c=0; (a>b) ? (c=a):(c=b); printf("c = %d \n",c); } 조건 (a>b) 가 거.. 2020. 5. 7.
초등학생도 이해하는 C 언어 - 논리 연산자 논리 연산자는 AND, OR, NOT 이 있습니다. 디지털 논리 게이트를 아신다면 매우 쉬운 개념입니다. 위 논리 게이트들은 결과 값이 1 또는 0 으로 나오며 1을 참(True) 이라 하고 0(False) 을 거짓 이라고 합니다. NOT 은 C 언어에서 ! 입니다. OR 은 C 언어에서 || 입니다. AND 는 C 언어에서 && 입니다. 그래서 변수 에 ! 을 붙이면 논리 값이 반전 됩니다. || 로 연산된 값은 둘중 하나만 참이면 참이 되어 결과 값이 1 이 됩니다. 만약 둘다 거짓이라면 결과 값은 0 이 됩니다. ( 더하기와 같아요) && 는 둘다 참일 경우만 결과 값이 1 이 됩니다. ( 곱하기와 같아요) 예제 코드를 보겠습니다. #include void main (void) { int a,b,c.. 2020. 5. 7.
초등학생도 이해하는 C 언어 - 관계 연산자 관계 연산자에는 >, =, b);//a 가 b 보다 크면 1 아니면 0 printf("%d\n",a=b);//a 가 b 보다 크거나 같으면 1 아니면 0 printf("%d\n",ab 는 거짓 이므로 그 결과가 0 이 됩니다. a 2020. 5. 7.
초등학생도 이해하는 C 언어 - 증감 연산자 증감 연산자는 1씩 증가 시키거나 감소 시키는 연산자 입니다. 먼저 예제를 보겠습니다. #include void main (void) { int a,b; a = 1; b = 2; a++; b--; printf("a=%d b=%d\n",a,b); } 이 코드의 결과는 아래와 같습니다. a=2 b=1 너무나 쉽죠? 그런데, 여기서 한 가지 재미있는게 있습니다. 바로 ++ 또는 -- 가 변수의 앞에 붙느냐 뒤에 붙느냐에 따라 결과가 달라진다는 것 입니다. 앵?? a++ 말고 ++a 또는 --a 가 있다는 뜻입니다. 뭐가 다를까요? 만약 위의 예제와 같이 변수를 증가 또는 감소만 시킨다면 a++ 와 ++a 는 같은 결과를 보입니다. 하지만, 그 결과 값을 어떤 변수에 저장하거나 조건으로 사용된다면 다른 결과를 .. 2020. 5. 7.
초등학생도 이해하는 C 언어 - 복합 대입 연산자 복합 대입 연산자 라고 쓰니. 괜히 어렵고 복잡하게 느껴지는데요. 먼저 배웠던 산술연산과 대입 연산을 붙여서 한 것 뿐입니다. 예를들어 다음 코드를 보겠습니다. #include void main (void) { int a,b; a=1; b=2; a = a+3; b = a+b; printf("a=%d b=%d \n",a,b); } 위 코드를 실행 하면 아래와 같은 결과가 나옵니다. a=4 b=6 a 에 3을 더해서 다시 a 에 대입을 했고, a 와 b 를 더해서 다시 b 에 대입을 한 결과 입니다. 이렇게 산술 연산과 대입 연산이 나란히 있는경우 다음과 같이 복합 대입 연산자를 통해 코딩 할 수 있습니다. #include void main (void) { int a,b; a=1; b=2; a += 3; b.. 2020. 5. 7.
초등학생도 이해하는 C 언어 - 산술 연산자 산술 연산자는 말 그대로 계산을 할때 쓰는 연산자 입니다. 더하기( + ), 빼기( - ), 곱하기( * ), 나누기( / ) 가 대표적인 산술 연산자고요. 여기에 나머지( % ) 가 추가됩니다. 나머지 연산을 실생활에서 잘 쓸 일이 없지만, 코딩을 하다보면 자주 쓰게 됩니다. 예제코드 #include void main(void) { int a,b,c; a=10; b=2; c=a+b; printf("Addition %d+%d=%d\n",a,b,c); c=a-b; printf("Subtraction %d-%d=%d\n",a,b,c); c=a*b; printf("Multiplication %d*%d=%d\n",a,b,c); c=a/b; printf("Division %d/%d=%d\n",a,b,c); b=3.. 2020. 5. 7.
초등학생도 이해하는 C 언어 - 대입 연산자 c = a + b; 위 코드에서 사용된 =, + 와 같은 것들이 연산자 입니다. 위 코드를 사람의 말로 해석하면 a에 b 를 더해서 c 에 넣어라. 입니다. 더하기 연산과 대입 연산이 사용된 코드 입니다. 이 처럼 변수나 상수를 가공할 목적으로 사용하는 것들이 연산자 입니다. C 언어에는 다양한 연산자가 있는데요. 그 종류는 아래 표와 같아요. 차근차근 하나씩 설명을 해 보겠습니다. 대입 연산자 대입 연산자 '=' 는 좌측항에 우측항을 대입 시키는 연산자 입니다. 대입 연산자 예제 코드 #include void main(void) { int a,b; a=1; b=3; a=b; printf("a : %d \n",a); } 이 코드를 실행시키면 어떻게 나올까요? a = 1; // a 에 1을 대입 한다. b.. 2020. 5. 1.