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

[C언어] 2.C언어 기초(1)

 

 
저번 게시글에서 C언어 실습셋팅을 하였으니 이제 C언어에 대해 알아봅시다.
 
이번 게시글에서 다룰 내용은 크게 2가지입니다.
 
1.변수
2.표준입출력함수
 
먼저 변수에 대해 알아보겠습니다.
 
변수란?
프로그램에서 사용되는 데이터가 저장되는 공간이자 데이터가 변할 수 있는 저장 공간입니다. 간단하게 저장 공간이라고 생각하시면 됩니다.
그리고 변수는 사용하기 전 선언해주어야만 사용이 가능합니다.
 
프로그래밍내에서 변수라는 개념이 어색하실 수도 있는데 이렇게 기억하시면 이해하시기 쉬울겁니다.
변하지 않는 값을 상수라고 하고 변하는 값을 변수라고 합니다.
프로그래밍 내에서 변수란 저장 공간내의 값을 원하는대로 바꿀수있다. 라고 생각하시면 됩니다.
 
변수에 대해 알아봤으니 변수를 선언하는 방법에 대해 알아봐야겠죠?
변수를 선언하기 전 자료형이라는 것을 먼저 선언하고 뒤에 원하는 변수명을 선언하시면됩니다.
여기서 자료형은 크게 3가지로 나뉩니다. 선언한 자료형을 저장하는 변수가 되는 것이죠.
 
1.문자형
2.정수형
3.실수형
 
문자형은 말 그대로 문자데이터를 가지고 있는 변수이고 정수형은 정수형데이터 실수형은 실수형데이터를 가지는 변수입니다.
 
문자 자료형은 
char 로 선언합니다.
char로는 하나의 문자만 입력이 가능하며, 문자열등을 사용할 때에는 배열이나 포인터라는 것을 사용하여야만 합니다.
 
* char는 character의 약자이며 읽을 때는 캐릭터 혹은 char 그대로 챠라고 읽습니다. 저의 경우에는 차라고 읽는 편입니다.
 

정수 자료형은
short int 2가지의 방법으로 선언하는데 둘의 다른점은 크기가 다릅니다.
short의 경우에는 2byte의 크기를 가지고 있고, int의 경우에는 4byte의 크기를 가지고 있습니다.
만약 사용하려는 숫자가 short가 표현이 가능한 숫자를 벗어난다면 short로 선언한 변수는 그 정수를 제대로 담지못하기때문에 int를 사용해야만 합니다. 허나 요즘 프로그래밍에서는 과거처럼 메모리에 연연할필요가 없기때문에, 왠만하면 대부분 int를 사용합니다. 
 
* int는 integer의 약자이며 읽을 때는 인티저 혹은 인트라고 읽는편인데, 저의 경우에는 인트라고 읽습니다.
 
실수 자료형은
float double로 선언합니다. 이 둘의 차이도 short와 int처럼 크기의 차이인데 float의 경우에는 4byte double의 경우에는 8byte를 가집니다.
float와 double의 경우에도 프로그래밍을 할 때 왠만하면 double을 사용합니다.
 
그리고 정수 자료형에 long이라는 자료형도 있는데, int와 기능이 같습니다. 허나 다른점은 int는 개발환경에따라 2byte(DOS)가 될수도 있고, 4byte(WINDOW,UNIX)가 될수도 있는데 long의 경우에는 4byte로 고정됩니다. 어차피 실습하는 환경은 리눅스아니면 윈도우니 long이나 int의 경우에는 차이가 없으니 int를 씁니다.
 
자료형중에 부호가 있는 것과 없는 것을 구분할 때 선언하는 자료형도 있습니다.
unsigned라고 선언을 하는데요. 선언하는 방법은 자료형 앞에 적으면 됩니다. unsigned char,unsigned int 처럼요.
말 그대로 +-의 구분이 없기때문에 양수밖에 표현을 못합니다. 그럼으로써 양수로 표현할 수 있는 수가 늘어납니다.
예를 들면 unsigned를 선언하지않은 int의 경우에는 약-21억~약21억까지 표현이 가능합니다. unsigned를 선언한 int인 unsigned int의 경우에는 0~약42억까지 표현이 가능하죠.
*실수 자료형의 경우에는 unsigned의 사용이 불가능합니다.
 
마지막으로 void라는 자료형이 있습니다.
말 그대로 아무것도 없다라는 뜻인데요. 함수를 사용 할 때 return값이 없다 라는 의미로 사용이 됩니다. 현재까지는 이 자료형에 대해 모르셔도 상관없으니 아 그냥 void라는 자료형도 있구나. 라고 생각하시면 됩니다.
 
*변수를 사용할 때에 아무런 값(내용)도 입력하지 않았을 경우에 변수에 들어있는 값은 0이 아니라 쓰레기값이라고 불리는 이상한 값입니다.
 
실습 한번 해보며 정리해보겠습니다.
 
 
이런식으로 선언하셔서 사용하시면 됩니다.
 
변수를 사용할 때에 중요한 점이 몇가지 있습니다.
1.변수명으로 키워드를 사용하면 안되고, 포함은 가능합니다. {예: int double(X) int chuingdouble(O)}
2.첫 글자에 숫자를 사용하면 안됩니다. {예: int 1츄잉(X) int 츄잉1(O)
3.변수명 사이에 공백을 사용하면 안됩니다. {예: int 츄 잉(X) int 츄잉(O)
4.대소문자를 구분합니다. {예: int chuing(O) int CHUING(O) 둘은 엄연히 다른 변수입니다.}
5.특문을 사용하면 안됩니다. 허나 언더바(_)는 가능합니다. {예: int chuing***(X) int chu_ing(O)
 
1번에서 말한 키워드란 int char float와 같이 이미 C언어에 저장되어 있는 단어들을 말하는데요.
직관적으로 말하자면 C언어 코드창에 사용하였을 때 파란색으로 뜨는 단어를 말합니다.
 
여기까지 변수에 대해 알아보았고, 이제 2번째인 표준입출력함수에 대해 알아봅시다.
 
먼저 표준 입출력 함수 중에서 표준 출력 함수부터 시작해봅시다.
표준 출력 함수에는 putsprintf가 있습니다.
 
puts와 printf의 차이점은
puts는 인자 값을 하나만 가지며,printf는 인자 값을 하나이상을 가질 수 있습니다. 여기서 인자란 함수를 호출했을 때 함수 안에 들어가는 변수를 말하는 겁니다. 이에 대해서는 실습을 할 때 자세히 설명하겠습니다.
 
puts는 int puts(char *string)를 가지며 사용자가 입력한 문자만을 출력하고 줄바꿈을 합니다.
printf의 경우에는 int printf(char *format,...)을 가지며 입력된 인자값을 출력하고 줄바꿈을 하지않습니다.
 
여기서 중요한건 앞의 함수가 아니라 뒤의 말이 중요합니다.
puts는 사용자가 입력한 문자열을 출력하고 줄바꿈을 한다.
printf는 사용자가 입력한 인자값을 출력하고 줄바꿈을 하지않는다.
 
표준 입력 함수에는 getsscanf가 있습니다.
gets와 scanf의 차이점은
puts와 printf처럼 puts는 하나의 인자 값을 가지며,scanf는 하나이상의 인자 값을 가질 수 있습니다.
 
gets는 char* gets(char *buffer)라는 함수이고 문자열을 입력받아 buffer에 넣고 개행문자(n)은 버립니다.
scanf는 입력을 받아 변수에 저장합니다.
*scanf의 첫번째 인자에는 서식문자만 사용가능하며,공백이나 n등을 사용하면 안됩니다.(서식문자에 대한것은 실습을 하며 간단하게 설명해두었습니다.)
 
중요한점만 다시 정리하면,
gets는 문자열을 입력받아 buffer에 저장한다.
scanf는 입력을 받아 변수에 저장한다.
가 되겠습니다.
 
실습.
 
문자열을 입력하기 위해 char라는 문자형으로 선언후 string라는 변수 뒤에 [10]라고 배열의 크기를 설정해주었습니다.
gets에서 string라는 변수에 입력한 문자열을 넣고 puts에서 string라는 변수에 입력된 문자열을 출력합니다.
그리고 scanf를 사용하여 string변수에 문자열을 입력하고 printf를 사용하여 string에 있는 문자열을 출력합니다.
gets와 puts는 인자를 1개만 사용하였고, scanf와 printf는 인자를 1개이상을 사용하였다는 것을 알 수 있습니다.
 
scanf와 printf의 첫번째 인자에 있는 %s는 서식 변환 문자라고 하는데 이에 대해선 다음 게시글에서 자세하게 알아보고 여기선 간단하게 설명만 하려합니다.
이에 대해선 다음 게시글에서 자세히 알아볼테니, 간단하게 4개만 알아보고 넘어갑시다.
 
%c는 문자를 사용할 때
%s는 문자열을 사용할 때
%d는 10진수를 사용할 때
%lf는 실수를 사용할 때
 
위에선 문자열을 입출력하기 위해 %s를 사용하였습니다.
 
scanf는 입력을 받아 변수에 저장하기때문에 저장할 때에는 변수 앞에 변수의 주소를 가르키는 &라는 걸 꼭 적어주어야만합니다. 
그냥 scanf를 사용할 때에는 변수앞에 &를 입력하여야 한다 라고만 기억하면 됩니다.
 
(코딩 후 실행을 시키기 위해서는 Ctrl+F5를 누릅니다.)
 
왼쪽과 같이 코딩하고 실행을 시키면 오른쪽과 그냥 검은화면에서 커서만 깜빡거리는데요. 이 화면에서
옆과 같이 chuing이라는 글자를 치고 Enter를 치시면
 
chuing이라는 글자가 한번 더 출력되고 커서가 깜박거립니다.
 
그 후 츄잉이라고 한글로 치고 엔터를 치면 츄잉이라는 한글이 출력되고 왼쪽의 화면과 같이 됩니다.
 
여기서 puts와 printf의 줄바꿈차이가 보이는데요.
puts는 chuing이라고 출력 후 한번 줄바꿈을 했기때문에 scanf로 츄잉이라는 말을 입력받을 때 세번째 줄에 츄잉이라는 글자가 입력이되고
printf는 줄바꿈을 하지않았기때문에 계속하려면 아무 키나 누르십시오... 라는 말이 츄잉에 이어서 나타납니다.
printf를 사용하고 줄바꿈을 하기위해서는 n 이라는 서식문자를 printf안에 사용하시면 줄바꿈이 됩니다.
 
이걸 이용하여 두 숫자를 입력받아 더한값을 출력하는 프로그램을 짜보겠습니다.
 
 
여기선 2가지의 숫자를 입력받아 printf에서 합을 더하여 출력하는 방식과 두 숫자의 합을 더한 값을 저장하는 sum이라는 변수를 하나 더 만들어 sum이라는 변수를 출력하는 방식 2가지를 사용하여 코딩하였습니다.
 
위와 같이 코딩하여 실행하면 아래와 같이 결과 값이 나옵니다.
 
자신이 뭔가 더 해보고싶다 하시는 분은 제가 아래에 말하는 것을 직접 해보시면 변수와 입출력함수에 대해 더 이해가 될테니 한번 해보시길 바랍니다.
 
1.a라는 변수에 100을 입력하고 출력하기 b라는 변수에 99.9를 입력하고 출력하기 c라는 변수에 문자 A를 넣고 출력하기 d라는 변수에 문자열 chuing을 넣고 출력하기
2.변수를 2개만 사용하여 세 숫자를 입력받아 세 숫자를 더한값을 출력하기
(만약 이 문제를 푸시다가 막히는 점이 있을 시 댓글이나 쪽지를 보내시면 설명해드립니다. C언어를 처음 하는 사람이 하면 막힐 부분이 있을겁니다.)
 
만약 글 중 이해가 가지않는 것이 있다면 댓글이나 쪽지로 보내시면 설명해드립니다.
 
개추
|
추천
1
반대 0
신고
    
  [숨덕모드 설정] 숨덕모드는 게시판 최상단에 위치해 있으며 언제든 설정할 수 있습니다.
순결녀
#include <stdio.h>
void main()

{
int a,b,c,sum;
sum=a+b+c;

scanf("%d%d%d",&a,&b,&c);
printf("더한 값은 % 요놈이다",sum);
}
2014-09-08 18:42:59
추천
순결녀
근데 %s를 문자 출력으로는 못 쓰나요

한 번도 안 해봤는데
2014-09-08 19:04:04
추천
팟독
써져염
아마도 써질꺼임
2014-09-08 19:40:27
추천
순결녀
그럼 대체 %c 는 머하러 있는거임

한 번도 써본 적이 없어서 예전부터 궁금했는데
2014-09-08 19:44:00
추천
팟독
문자와 문자열 차이
포인트를 쓰느냐 안쓰느냐의 차이
입출력을 어떻게 하냐의 차이
%c로 받은건 %s로 출력안됨 %s로 받은건 %c로 출력안됨.
char로 받은건 %s로 출력안됨 but %s로 받았는데 문자(1자)라면 출력됨.
2014-09-08 20:29:14
추천
[L:40/A:357]
슛꼬린
C는 문자 하나(ex - a , b ,v)

S는 문자열(ex - hello , chuing)

C로도 문자열을 표현할수 잇지만 그렇게되면 소스가 너무 길어짐

V라는 것도 알파벳 1개로 이뤄진 문자열로 취급 즉 s로 표현가능
2014-09-09 05:37:29
추천
손없는기사
표준 입출력기에 있는 입력 출력 함수 부분은 설명이 없네요. 이왕 다 하시는거 그냥 싹다 하시지...
2014-09-08 19:31:08
추천
팟독
설명하자니 처음보는 사람한테는 더 복잡하게만 느껴질꺼같아서 안했어요
2014-09-08 19:40:00
추천
딥빡
대가리아프다...
2014-09-09 00:20:59
추천
샹크스¸
메인이 ㅎㄷㄷ하네요
2015-02-08 22:37:09
추천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 17641
133 별처럼빛나는  
[모바일 게임] 불멸의전사2 : 위너스 [3]
2016-04-11 0-0 5407
132 별처럼빛나는  
[모바일 게임] 슈퍼판타지워 [7]
2016-03-16 0-0 7591
131 별처럼빛나는  
[리니지] 러쉬일기 [14]
2016-02-06 1-0 9033
130 별처럼빛나는  
[리니지] 별처럼빛나는 전투영상 6편~8편까지! [13]
2016-01-11 2-0 11529
129 전쟁뒷이야기  
광복 이후 일본인들은 어떤 생활을 했을까? [33]
ㄴㅇㅋㅌㅊ
2016-01-05 14-0 17646
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 | 개인정보취급방침 | 게시물삭제요청