C언어 코딩에는 주로 Visual Studio를 사용합니다만
가벼운 연습용으로 사용할 수 있는 Dev-C++이라는 프로그램이 있습니다.
해당 프로그램으로 연습하는 걸 추천드립니다.
1.C언어의 기초구조
#include <stdio.h> // 헤더파일 선언
int main() // main 함수
{
return 0; // 코드 종료
}
>>>
C언어는 오래된 언어라 함수지향적 코딩입니다.
요즘은 대부분 객체지향형 언어인 Java나 Python을 많이 사용하는데
함수 지향적 언어가 무엇이냐면
언어 자체에 기본적인 틀이 존재하며
이는 함수의 형태로 이루어져 있고 코딩은 그 틀에 맞춰 이루어져야 한다는 걸 뜻합니다.
위 코드는 C언어의 가장 기초적인 int main() 함수가 보이는 기본 코드입니다.
main() 함수는 내가 실행할 코드가 주로 올라가는 가장 메인 함수라는 뜻이며
#include <stdio.h>라는 문장은
헤더파일이라는 것을 사용하겠다 선언한 것입니다.
. h 확장자는 헤더 파일을 의미하며
헤더 파일에는 각 헤더 별로 분류된 함수를 사용할 수 있는 코드가 들어있으며
이 헤더들을 #include(선언) 해주어야 헤더 안의 함수를 사용할 수 있습니다.
또한 C언어는 대소문자를 구별하며
문장의 끝은 ;(세미콜론)으로 끝나야 하며
return 0;는 main() 함수의 모든 코드가 실행된 후 종료된다는 걸 뜻합니다.
2. printf()를 이용한 간단한 출력
#include <stdio.h> // 헤더파일 선언
int main() // main 함수
{
printf("10 + 20 = 30"); // 10 + 20 = 30 문장을 출력
return 0; // 코드 종료
}
>>> 10 + 20 = 30
printf()는 stdio.h 헤더에 선언된 출력 함수입니다.
int printf(const char * restrict format, ...);
함수의 원형은 위 코드와 같으며
입력된 문자열을 출력하며 format은 서식화된 출력
즉 자신이 입력한 데이터 값에 따라 맞춰서 출력할 수 있다는 걸 의미합니다.
3. C언어의 자료형 그리고 자료형 별 출력 법
// int 형(정수형) 10 20 6225 38204 204582034710 -1 -30
// double,float형 (실수형) 3.141592 5.000000
// char,str형 (문자,문자열형)
#include <stdio.h>
int main()
{
int a=1;
double b = 1.23;
char c='s';
char d[10]="love";
printf("%d, %lf, %c, %s",a,b,c,d);
return 0;
}
>>> 1, 1.23, s, love
맨 위 // 앞에 적힌 글들은 주석이며
주석이란 코드에는 영향을 끼치지 않고 코드 가독성을 위해 적는 글입니다.
그리고 C언어에서 대표적으로 쓰이는 자료형 정수형(int), 실수형(double, float), 문자형(char) 네 가지가 있습니다.
각 자료형 별 출력 문자열은 아래와 같습니다.
- 정수형 - int - %d
- 실수형 - double - %lf
- 문자형 - char - %c
- 문자열형 - char [] - %s
여기서 문자열형이란 문자 단일이 아닌 2 이상의 크기를 가진 문자의 집합을 의미합니다.
단일 문자 - %c
문자열 - %s
4. 입력 함수 scanf()
#include <stdio.h>
int main()
{
int a=0;
int b=0;
printf("a와 b의 값을 입력하시오 >> ");
scanf("%d%d",&a, &b)
printf("a와 b의 합한값 >> %d",a+b);
return 0;
}
>>> a와 b의 값을 입력하시오 >> 10, 20
>>> a와 b의 합한값 >> 30
scanf() 함수는 입력 함수입니다.
Dev-C++ 프로그램은 오래되어서 scanf() 함수를 사용해도 따로 오류가 발생하지 않지만
이 scanf() 함수는 버퍼오버플로우 취약점이 존재해 쓰이지 않는 함수입니다.
최신화된 컴파일러에서는 사용이 안되니 scanf() 대신에 scanf_s() 함수를 주로 사용합니다.
하지만 scanf() 나 scanf_s() 함수는 입력의 기능을 가지고 있다는 점에서 그냥 진행하겠습니다.
함수의 원형은 아래와 같습니다.
int scanf(const char * format, [address])
위에서 배운 자료형 별 변환 문자열에 대응하는 자료형을 가진 변수에
값을 입력받아 저장하고
아래 출력문에서 해당 변수를 출력하면 자신이 입력한 값이 출력되는 원리입니다.
위 코드에서 scanf() 안을 보면 변수 앞에 & 문자가 보일 텐데
이는 주소를 뜻하는 포인터 문자열로
변수의 주소에 값을 저장하는 방식이기 때문입니다.
함수 원형에서 두 번째 인자 값이 [address]인 이유도
주소에 저장한다는 것을 의미하기 때문입니다.
'개발&코딩 > C' 카테고리의 다른 글
[C] 함수의 구조와 예제 모음 (0) | 2020.09.09 |
---|---|
C언어 반복문 예제와 기초 알아보기 - for,while,dowhile (0) | 2020.09.09 |
C언어 조건제어문 if문/else문 과 switch/case문 예제와 기초 (0) | 2020.09.09 |
[C] C 중급 2차원 배열과 포인터배열 예제 (0) | 2020.07.27 |
[C] c의 정적변수와 외부변수 (0) | 2020.07.25 |
댓글