전체 글(139)
-
C언어 - 변수의 영역(scope)과 지역변수(Local)
int main() { int a; // {}영역 안에서만 사용되서 지역변수 a = int_max(1,2); printf("%d\n", a); printf("%p\n", &a);// & 는 주소를 가르킨다. //%p p는 포인터이다. 고로 a의 주소값을 프린트해준다. { int a;// main()함수의 지역변수가 아닌 내부의 다른 a변수 a = int_max(4,5); printf("%d\n", a); printf("%p\n", &a); int b =123; } printf("%d\n", a); printf("%p\n", &a); return 0; } // 하지만 내부의 새로운 a를 선언하면 내부의 a는 다른변수이다. int main() { int a; // {}영역 안에서만 사용되서 지역변수 a ..
2020.11.10 -
C언어 - 함수의 프로토 타입
블랙박스로서의 함수. void print_multiple_chars(char c, int n_stars, bool endl); 함수가 블랙박스처럼(내부적으로 어떻게 돌아가는지는 모르지만) 어떤 인자를 넣어주면 어떻게 돌아가는지 유추할수 있어야한다. 구현내부가 주석처리가 되어 컴파일은 되지만 링킹은 되지 않는다. 프로토 타입만 있어도 (몸통, 구현부가 없어도) 컴파일이된다. 그리고 그 몸체는 코드 어딘가에만 있으면 된다. void print_centered_str(char); void print_multiple_chars(char, int, bool); 선언부에서는 자료형만 있고 변수명이 없어도 빌드가 된다. 출처 : 홍정모의 따라배우는 C언어
2020.11.10 -
C언어 - 함수가 필요할 때
프로그램을 작성할땐 2가지를 신경써야한다. 1. 일반화라는 관점에서 프로그램이 여러가지의 경우에 대해서 쉽게 작동할수 있도록 개선해나가야 함. 2. 같은 기능이 여러번 나오면 안된다. (유지보수가 어렵기 때문) #define _CRT_SECURE_NO_WARNINGS #include #include #define WIDTH 20 #define NAME "Cho Yi Sak" #define ADDRESS "Seoul, Korea" void print_bar(int n_stars) { for (int i = 0; i < n_stars; i++) printf("*"); printf("\n"); } int main() { print_bar(WIDTH); printf("%s\n", NAME); printf("%s..
2020.11.10 -
C언어 - 표준 입출력 함수들
int main(){ int ch; //ch = getchar(); // buffer //putchar(ch); //while (ch != '\n')// 줄바꿈을 입력했다면 실행종료 while ((ch=getchar()) != '\n') { putchar(ch); //ch = getchar(); } putchar(ch); return 0; } 버퍼를 이용해서 한글자씩 처리하지 않는다. 출처 : 홍정모의 따라배우는 C언어
2020.11.10 -
C언어 - 배열과 런타임 에러
#define NUM_DAYS 365 int main() { char my_char[] = "Hello, World!"; int daily_temperature[NUM_DAYS]; // int[365] double stock_prices_history[NUM_DAYS];// double[365] printf("%zd\n", sizeof(stock_prices_history));// 2920 printf("%zd\n", sizeof(double) * NUM_DAYS);// 2920 double 사이즈의 메모리가 365개 printf("%zd\n", sizeof(stock_prices_history[0]));// 8 return 0; } int main() { int my_numbers[5]; // arra..
2020.11.10 -
C언어 - 반복문
int main() { const double speed = 1.0; const unsigned repeat_max = 10; double dt = 1.0; double time = 0.0;//Elapsed time double dist = 0.0;// Distance for (unsigned i = 0; i < repeat_max; ++i) { dist += speed * dt; time += dt; printf("Elapsed time = %.10fs, Distance = %.10fm\n", time, dist); dt *= 0.5; } return 0; } 제논의 역설 int main() { int password; int real = 1234; do { printf("please enter you..
2020.11.10