츄잉~ chuing~
츄잉 신고센터 | 패치노트 | 다크모드
공지&이벤트 | 건의공간 | 로고신청N | HELIX
로그인유지
회원가입  |  분실찾기  |  회원가입규칙안내
[C언어] 5.C언어 기초(3)
팟독 | L:0/A:0
203/450
LV22 | Exp.45% | 경험치획득안내[필독]
추천 1-0 | 조회 10,403 | 작성일 2014-09-22 05:03:55
[서브캐릭구경OFF] [캐릭컬렉션구경OFF] [N작품구경OFF]
*서브/컬렉션 공개설정은 서브구매관리[클릭]에서 캐릭공개설정에서 결정할수 있습니다.
  [숨덕모드 설정] 숨덕모드는 게시판 최상단에 위치해 있으며 언제든 설정할 수 있습니다.

[C언어] 5.C언어 기초(3)

  

이번에는 연산자 라는것에 대해 적어볼까합니다.
연산자란 말 그대로 C언어에서 연산을 하게 해주는 기호등을 말합니다. +,- 이런걸 말하는거죠.
 
연산자의 우선순위
C언어의 연산자에도 우선 순위라는게 있습니다. 곱하기가 덧셈보다 더 빨리 계산하는 것 같은거죠.
 
 
 
다른건 다 이해가 갈꺼라생각되고, 결합순서에 대해 애매 할 꺼라 생각되네요.
결합순서는 간단하게 연산자의 화살표방향으로 연산한다라고 생각하시면됩니다.
솔직히 연산자는 A연산자B 대부분 이렇게 사용하기 때문에 연산자를 사용할 때 아직까지는 그렇게 중요하지 않고, 사용하다보면 이해가 되는 겁니다.
 
산술 연산자
산술 연산자는 말 그대로 산술 연산자입니다.
+,-,*,/ 입니다.
딱 보면 아시겠지만 순서대로 덧셈(+),뺄셈(-),곱셈(*),나눗셈(/)입니다.
그리고 하나 더 %가 있습니다.
%는 MOD연산인데요. 나머지연산이라고 합니다. 컴퓨터에서 이게 왜 필요해? 할 수도 있겠지만 암호학등에서 매우 중요하게 쓰입니다.
 
관계 연산자
관계 연산자는 그냥 부호라고 생각하시면 됩니다. < 나 > 이런거죠.
 
a < b  : a가 b보다 작은 가?
a <= b  : a가 b보다 같거나 작은 가?
a > b  : a가 b보다 큰 가?
a >= b : a가 b보다 같거나 큰 가? 
a == b : a와 b가 같은가?
a != b : a와 b가 다른가?
 
같은가? 에서 왜 =를 안쓰고 ==을 쓰는 이유는 =은 대입연산자라고 a=5 이런식으로 변수등에 무언가 넣을 때 사용됩니다.
그렇기 때문에 =를 안쓰고 ==를 사용하는거죠.
관계 연산자의 결과는 참이나 거짓(1또는 0)으로 밖에 안나옵니다. (0 이외의 수는 모두 참으로 인식합니다.)
당연한 소리지만 매우 중요한 말입니다.
 
논리 연산자
 
논리 연산자는 이해하기 꽤 힘들 수도 있습니다.
불 대수라는것을 알고 계신다면 이해하기 편합니다. 저는 이걸 컴퓨터쪽(논리회로)으로 알았지만 전기회로나 이런곳에서도 쓰입니다.
 
크게 OR(논리 합) AND(논리 곱) NOT(부정)이 있습니다.
OR은 둘 중 하나라도 참이면 참.
AND는 양 쪽 참이여야만 참.
XOR은 서로 값이 달라야만 참.
 
논리 연산자도 A OR B 이런식으로 2개의 피연산자와 하나의 연산자로 사용됩니다.
논리 연산자도 관계연산자처럼 결과 값이 참과 거짓(1또는 0)으로만 나옵니다.
 
생각보다 매우 간단합니다.
 
 
 
 
위가 논리회로에서 사용되는 기호를 정리한겁니다.
그래픽 기호나 함수식,buffer,NAND,NOR,XNOR이런건 모르셔도 됩니다.
근데 만약 컴퓨터나 전기 전공하시면 언젠가 논리회로라고 보시게 될거고 이거때문에 머리 아플 수도 있습니다.
 
우리가 필요한건 AND,OR,XOR,NOT의 진리표입니다.
진리표에서
AND를 보시면 A,B가 1,1 그러니 모두 참일때만 결과가 1으로 나오고 나머지 결과는 0으로 나옵니다.
OR은 0,0(거짓,거짓)이 아니라면 결과가 참(1)으로 나옵니다.
XOR은 A,B와 서로 다를 때에만 결과가 참(1)으로 나옵니다.
NOT은 참(1)일 경우 거짓(0)으로 거짓(0)일 경우 참(1)으로 나오구요.
 
대입 연산자
대입 연산자에는 =,+=,-=,*=,/=,%= 이런것들이 있습니다.
 
=는 식이 a=b라고 되어있다면 a는b다.b를 a에 넣는다. 매우 간단한거라서 더 설명할게 없네요.
 
그런데 +=,-=,*=,%= 라는게 뭔가 싶을 겁니다.
이건 그냥 줄임말 같은건데요.
+= : a = a+b를 a += b 처럼 줄일 때 사용합니다.
그러니까 a = a+b와 a += b 는 같은 거란거죠.
a = a+b == a += b
 
-=도 +=와 마찬가지입니다.
a = a-b == a -= b
 
*=도 마찬가지구요 /=,%=도 마찬가지입니다.
a = a*b == a *= b
a = a/b == a /= b
a = a%b == a %= b
 
증감 연산자
증감 연산자에는 ++가 사용됩니다. --도 있구요.
뜻은 ++는 1증가(a=a+1) --는 1감소(a=a-1)입니다.
사용 방법은 ++a,a++ 처럼 변수의 앞이나 뒤에 적어주면 됩니다.
앞에 적었을 때는 전위 연산자 뒤에 적었을 때는 후위 연산자라고 합니다.
 
전위 연산자와 후위 연산자의 차이는 전위 연산자는 사용 전에 연산,후위 연산자는 사용 후 연산의 차이인데요.
만약 a=10 printf("%d",a)라고 명령을 한다면 10이라고 출력이 될겁니다.
a=10 printf("%d",++a)라고 하면 11이 출력이 됩니다.
a=10 printf("%d",a++)라고 한다면 10이 출력됩니다.
분명히 앞에서 ++a라고 했을 때 11이 출력됬는데 a++을 하고 출력하면 10이 출력되는 이유는 ++a는 사용 전 증가 시키고 a++은 사용 후에 증가를 시키기 때문입니다.
만약 a=10 printf("%d",a++)을 한번 사용 한 후에 한번 더 pritnf("%d",a)만 하면 11이 출력되는거죠.
--도 ++와 마찬가지입니다. 대신 1이 감소된다는게 다르죠.
 
캐스팅 연산자
한국어로 형변환이라고 말합니다.
변수의 형태를 변환 해주는거죠. 사용 방법은 (형태)변수 이렇게 사용합니다.
예를 들어 int a = 3 float b = 3.14로 선언했다고 합시다.
여기서 a = a+b라고 하면 오류가 뜹니다. C언어에서는 정수+실수등의 연산은 안되니까요.
허나 a = a+(int)b라고 하면 연산이 됩니다. b를 int로 변환했기 때문이죠. 실수를 정수로 형변환 할 때에는 소수점은 버리고 정수부분만 바뀝니다.
 
이런식으로 사용 할 수도있습니다. float b=3.11 double c=99.11 printf("%c",(char)(a+b))
변수 a와 b를 더한 뒤에 char로 형변환하여 출력하는거죠. 결과는 102에 해당하는 아스키코드값이 나올겁니다.
 
sizeof 연산자
sizeof 연산자는 말 그대로 크기를 알려주는 연산자입니다.
int나 char같은 형태에 대한 크기,변수에 대한 크기등을 알려줍니다.
 
만약 printf("%d",sizeof(int))라고 선언을 한다면 결과는 4가 나옵니다. int의 크기는 4byte니까요.
printf("%d",sizeof(char))을 하면 1이 나오죠 char의 크기는 1byte니까요.
int a = 0; printf("%d",sizeof(a))는 a라는 변수의 크기를 물어보는 건데요. 4가 나옵니다. 변수 a는 int니까요. 
 
C언어 고급과정에 들어갈 때까지 볼 일 없는 연산자입니다.
동적메모리를 사용할 때 사용하거든요.
 
연산자는 대부분 수학에서 사용하는 걸 그대로 사용하는거고 실습 한번 해보시면 이해하기 쉬울겁니다.
 
 
개추
|
추천
1
반대 0
신고
    
  [숨덕모드 설정] 숨덕모드는 게시판 최상단에 위치해 있으며 언제든 설정할 수 있습니다.
현실
오 또올라왔네요. 새벽에 올리셨네요. 잘보고 가요~
2014-09-22 14:33:18
추천
[L:42/A:188]
물트라
도움을 정말 많이 받네요. 질문 가능할까요.
대입 연산자 = 가 있는데 = 와 어떤점이 다른가요? 잘 쓰이지 않는 연산자라 그런지 설명을 찾기가 쉽지 않네요.
2014-09-22 22:02:14
추천1
[L:5/A:257]
BlueCandy
일반적으로 알고 있는 = 는 위의 연산자 우선순위표의 ==라 보시면 될듯합니다. 의미는 서로 같은지를 비교할 때 쓰고요, 대입 연산자 =는 예를 들어 a=3 이렇게쓰는데요. a라는 변수의 값으로 3을 넣겠다(대입)라는 의미로 보시면 되겠습니다.
2014-09-23 01:06:17
추천1
[L:42/A:188]
물트라
감사합니다. 제가 원래 물어보려고 했던게 < < = 연산자와 > > = 연산자였는데, 붙여서 쓰니 < 부분이 사라지네요.
이 부분에 대해서도 여쭤볼 수 있을까요? 이 연산자에 대한 설명을 찾기가 쉽지 않네요.
2014-09-24 02:10:03
추천0
[L:5/A:257]
BlueCandy
+=은 아시죠? +=과 비슷합니다. 예를 들면 a+=b는 실제로는 a=a+b입니다. 그럼>>=도 같습니다. a>>=b 는 a=a>>b 입니다. >>는 참고로 시프트 연산자이며, 잘 이해가 안되시면 아래링크가 훨씬 이해가 잘될것입니다
http://m.kin.naver.com/mobile/qna/detail.nhn?d1id=1&dirId=1040101&docId=108354003&qb=64yA7J6F7Jew7IKw7J6QIOyJrO2UhO2KuA==&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0
2014-09-25 02:41:09
추천1
샹크스¸
잘보고가요.
2015-02-08 22:41:02
추천0
의견(코멘트)을 작성하실 수 없습니다. 이유: 로그인을 하시면 댓글작성이 가능합니다. 츄잉은 가입시 개인정보를 전혀 받지 않습니다.
  
즐겨찾기추가   [게시판운영원칙] | [숨덕모드 설정] |   게시판경험치 : 글 10 | 댓글 1
번호| | 제목 |글쓴이 |등록일 |추천 |조회
정보공지
비밀글입니다 [ichitaka] Shouko to Yuuji to NTR [12]
순결녀
2015-11-02 3 754
135 별처럼빛나는  
[리니지] 콜로세움의 시작(리니지 토너먼트의 귀환?) 과연?! [8]
2016-05-01 0-0 6240
134 미연시나리뷰  
16. 그 고성에 용사포가 있다! [13]
은룡
2016-04-17 4-0 17642
133 별처럼빛나는  
[모바일 게임] 불멸의전사2 : 위너스 [3]
2016-04-11 0-0 5408
132 별처럼빛나는  
[모바일 게임] 슈퍼판타지워 [7]
2016-03-16 0-0 7591
131 별처럼빛나는  
[리니지] 러쉬일기 [14]
2016-02-06 1-0 9035
130 별처럼빛나는  
[리니지] 별처럼빛나는 전투영상 6편~8편까지! [13]
2016-01-11 2-0 11529
129 전쟁뒷이야기  
광복 이후 일본인들은 어떤 생활을 했을까? [33]
ㄴㅇㅋㅌㅊ
2016-01-05 14-0 17649
128 츄간음악시간  
[특별판] 2015 MLA 어워드 2부 [3]
츄인e
2015-12-31 0-0 13037
127 츄간음악시간  
[특별판] 2015 MLA 어워드 1부 [1]
츄인e
2015-12-30 3-0 10558
    
1
2
3
4
5
6
7
8
9
10
>
>>
enFree
공지&이벤트 | 접속문제 | 건의사항 | 로고신청 | 이미지신고 | 작품건의 | 캐릭건의 | 기타디비 | 게시판신청 | 클론신고 | 정지/패널티문의 | HELIX
Copyright CHUING Communications. All rights reserved. Mail to chuinghelp@gmail.com | 개인정보취급방침 | 게시물삭제요청