숫자 2개의 입력을 받고 2개를 더한 값을 출력하는 프로그램 사용하는 함수 - scanf(), printf() /* 홍정모의 따라하며 배우는 C언어 간단한 입출력 프로그램 만들기 */ #include int main() { int i = 0, j = 0, sum = 0; // 변수는 무조건 초기화하는것을 권장 printf("Input two integers\n"); scanf("%d%d", &i, &j); sum = i + j; printf("Your numbers are %d and %d\n", i, j); printf("%d \+ %d = %d\n", i, j, sum); return 0; } 원을 입력 받으면 달러로 변환해서 출력하는 프로그램 사용하는 함수 - scanf(), printf() /* ..
홍정모의 따라하며 배우는 C언어
scanf() 함수 - 콘솔창으로부터 사용자의 입력을 받아오는 함수 #include int main() { int i = 0; scanf("%d", &i); // & : ampersand printf("Value is %d\n", i); return 0; } * 콘솔창에 아무숫자나 입력하면 printf()함수가 출력해준다. * f : formatted의 약자로 형식을 맞춰 나타낸다는 뜻 * 포매팅(formating) : %~, ~ 부분에 뭐가 들어가는지 형식을 지정해주는 것. "%d" : scanf 함수에서는 입력을 어떻게 받을지, printf함수에서는 출력을 어떻게 할지 formating 해주고 있다.입력과 출력을 d(decimal, 10진수)로 받겠다고 포매팅해주고 있다. * &(ampersand) ..
- 변하는 값인 변수(Variable). 변하지 않는 값인 상수(Constants). - 변수와 리터럴상수 자료형 변수(variable) = 리터럴상수;(literal constant) int angel = 1004; 변수는 어떤 값이 저장 될 수 있는 메모리 공간을 의미한다. 메모리 공간에 담기는 값의 바뀌면 변수의 값도 바뀐다. 반면에 리터럴상수는 문자 그대로의 의미를 갖고 값의 바뀔 수 없다. - 기호적상수와 리터럴상수 한정자(제한자, Qualifier) 자료형 기호적상수(Symbolic constant) = 리터럴상수(literal constant); const int angel = 1004; 자료형과 const라는 키워드를 함께 사용하면 변수의 값을 바꿀 수 없다. 값을 못 바꾸는 변수는..
자료형이 필요한 이유 - 자료형이란 정수인지 실수인지 어떤 종류의 숫자인지 미리 구분해서 알려주는 것이다. - 메모리 사이즈를 어느정도 사용하는지 미리 알려주는 것으로 큰 숫자나 범위가 넓은 숫자를 다룰 때는 메모를 많이 써야한다. - 자료형 종류 int a; short b; char c; double d; float f; 자료형 크기(바이트) 범위 int 4 -2,147,483,648 ~ 2,147,483,647 short 2 -32,768 ~ 32,767 char 1 -128 ~127 ··· ··· ··· ~ ··· - 큰 자료형으로 작은 숫자를 사용하지 않는 이유는? 인공지능 등 복잡한 연산시 데이터 차이로 인한 메모리공간의 소모량이 연산속도에 차이가 나기 때문이다. 그래서 다양한 자료형들이 메모리..
#include void my_func() {// do something } int main() { int x=0, y=1; int z = 0; z = x + y; return 0; } 문법적으로 오류가 없는 코드라도 사람이 보기 불편하면 좋은 코드가 아니다. #include void my_func() { // do something } int main() { int x = 0, y = 1; int z = 0; z = x + y; return 0; } * 보기 쉽게 띄어쓰기 한다. (int x=0, y=1; → int x = 0, y = 1;) 'int x=0, y=1;' 이 부분을 드래그하고(단축키 :Shift + end 그 줄 끝까지 드래그) 잘라내기(단축키 : Ctrl + X) 후 다시 붙여넣기(단..
프로그래머들이 대부분의 시간을 사용하는 곳은 코딩이 아니고 오류를 제거하는 디버깅 작업이다. 그만큼 디버그를 잘 사용하는 것은 중요 한 일이다. #include void say_hello(void); // prototyping, function declaration int main() { int x, y, z; x = 1; y = 20; z = 3; z = x + y; say_hello(); return 0; } void say_hello(void) // function definition { int x = 1; x = 10; printf("Hello, World\n"); return; } - say_hello함수의 변수정의를 찾고 싶으면 : say_hello 우클릭 - Go To Definition -..
여러번 반복해서 사용하는 함수를 묶어서 하나의 함수로 만들어서 사용하기. - 이미 만들어져 있는 함수를 가져다 사용하지 않고 함수를 직접 만들 수 있다. #include int main() { printf("SM jjang.\n"); printf("SM jjang.\n"); printf("SM jjang.\n"); printf("SM jjang.\n"); return 0; } #include void say_SMjjang(void) { printf("SM jjang.\n"); return; } int main() { say_SMjjang(); say_SMjjang(); say_SMjjang(); say_SMjjang(); return 0; } 여러번 반복해서 쓰인 printf함수를 묶어서 새로운함수(sa..
comment 부가적으로 메모하는 기능. 출력시 주석부분은 컴파일러가 빼고 읽는다. /* Written by SMKIM */ #include int main() { /* This is my code */ int x, y, sum; // variables x = 1; y = 4; sum = x + y; // add two numbers printf("The answer is %i", sum ); printf("\n%i + %i = %i", x, y, sum); printf("\n\a"); return 0; } 주석을 다는 방법 1. 블럭주석 /* */ 블럭안에서 /* 이 안에 쓰면 주석으로 처리 */ 맨 윗부분에 /* 저작권자 표시 */ 2. 라인주석 // sum = x + y // 이 문장 전체의 주석 ..
printf(문자)함수로 문자 출력하기. #include int main() { printf("\"The truth is... \nI am Ironman.\"\n); return 0; } 입력 → printf() → 출력 입력은 출력할 문법을 받아야 한다. 그래서 입력은 printf함수의 안에 들어간다. 함수를 실행시키면 화면에 출력시키는 기능을 한다. printf(...) printf formatted의 약자로 형식을 맞춰 나타낸다는 뜻이다. 파이썬 같은 다른 언어에서는 형식을 하나하나 맞추지 않고 print함수를 사용한다. 그래서 따로 \n을 쓰지 않고 print함수를 두 번 사용하면 줄이 바뀐다. C언어는 문법을 엄격하게 만들었기 때문에 잘 배워두면 다른 언어 배울 때 쉽다. \n (esca..
변수가 편리한 이유 변수 선언 - 변수에 값을 대입 - 연산 - 연산 결과를 변수에 대입 변수라는 개념을 도입하면서 메모리의 주소를 직접 알 필요가 없어졌다. 프로그래머가 작업을 편리하게 할 수 있어졌다. 변수를 선언하는 법 int main(void) { int x; int y; int z; x = 1; y = 2; z = x + y; return 0; } int x; - declaration(선언한다) - 자료형을 입력하고 내가 사용하고 싶은 자료형의 이름을 입력하고 ;을 입력해 문장을 끝낸다. - 정수 하나를 담을 만한 메모리 공간을 확보했고 메모리 공간을 x라는 변수를 통해서 접근할 수 있다는 의미. - 변수 선언을 블럭(Body)안에서 맨앞에 하게 되어 있었는데 요즘은 코드 중간중간에 쓸 수 있다..