Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

히바리 쿄야 와 함께 하는 Developer Cafe

[2일차] DO IT C언어 입문/p152 ~ p288 / 제어문, 배열 , 지역변수, 전역변수 본문

C언어

[2일차] DO IT C언어 입문/p152 ~ p288 / 제어문, 배열 , 지역변수, 전역변수

TWICE&GFRIEND 2021. 5. 6. 14:15

 

if 문

 

if (조건식) 

{

    조건식의 결과가 참일 때 실행하고자 하는 명령문;

}

 

 

예제

 

#include <stdio.h>

void main()
{
    int score = 92; 
    char grade; 
    if (score >= 90) {
        grade = 'A';
        printf("점수는 %d이고 등급은 %c 입니다. \n", score, grade); ; 
    }
    printf("작업 종료 \n");  
}

 

 

else if 

 

if (조건식) 

{

    조건식의 결과가 참일 때 실행하고자 하는 명령문;

} 

else 

{

    조건식의 결과가 거짓일 때 실행하고자 하는 명령문;

}

 

 

예제

 

#include <stdio.h>

void main() {

	int score = 92;
	char grade;

	if (score >= 90) {
		grade = 'A';
		printf("점수는 %d이고 등급은 %c입니다 \n", score, grade);
	}
	else {
		grade = 'B';
		printf("점수는 %d이고 등급은 %c입니다. \n", score, grade);
	}

	printf("작업종료 \n");
}

 

 

for 문

 

for (초기식; 조건식; 증감식) 

{

    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;

}

 

 

예제

 

#include <stdio.h>

void ShowMultiplication(int step)
{
	int i;
	
	for (i = 1; i <= 9; i++) {
		
		printf("%d * %d = %d\n", step, i, step*i);
	}
}

void main()
{
	int m;
	
	for (m = 2; m <= 9; m++) {
		
		ShowMultiplication(m);
	}
}

 

 

 

지역 변수(local variable)

지역 변수란 '블록' 내에서 선언된 변수를 의미합니다.

지역 변수는 변수가 선언된 블록 내에서만 유효하며, 블록이 종료되면 메모리에서 사라집니다.

이러한 지역 변수는 메모리상의 스택(stack) 영역에 저장되며, 초기화하지 않으면 의미 없는 값(쓰레기값)으로

초기화됩니다.

함수의 매개변수 또한 함수 내에서 정의되는 지역 변수로 취급됩니다.

 

 

예제

 

#include <stdio.h>

int Sum(int data1, int data2) 
{
	int  result = data1 + data2;  
	return result;
}

void main()
{
	int  result;    
	result = Sum(5, 3);
	printf("5 + 3 = %d\n", result);
}

 

 

 

전역 변수(global variable)

전역 변수란 함수의 외부에서 선언된 변수를 의미합니다.

전역 변수는 꼭 필요한 경우에만 사용해야 합니다.

전역 변수는 프로그램의 어디에서나 접근할 수 있으며, 프로그램이 종료되어야만 메모리에서 사라집니다.

이러한 전역 변수는 메모리상의 데이터(data) 영역에 저장되며, 직접 초기화하지 않아도 0으로 자동 초기화됩니다.

 

예제

 

#include <stdio.h>
int  result;   

void Sum(int data1, int data2)
{
	result = data1 + data2;
}

void main()
{
	Sum(5, 3);
	printf("5 + 3 = %d\n", result);
}

 

 

배열

1차원 배열

 

타입은 배열 요소로 들어가는 변수의 타입을 명시합니다.

배열 이름은 배열이 선언된 후에 배열로 접근하기 위해 사용됩니다.

배열의 길이는 해당 배열이 몇 개의 배열 요소를 가지게 되는지 명시합니다.

1. 배열의 길이를 선언할 때에는 반드시 상수를 사용해야 합니다.

2. 배열 요소의 인덱스는 언제나 0부터 시작합니다.

3. C 컴파일러는 배열의 길이를 전혀 신경 쓰지 않습니다.

 

 

#include <stdio.h>

void main()
{
	short student[20];

	student[1] = 10;
	printf("%d %d\n", student[1], student[2]);
}

 

 

2차원 배열(two dimensional array)

2차원 배열이란 배열의 요소로 1차원 배열을 가지는 배열입니다.

C언어에서는 2차원 배열을 나타내는 타입을 따로 제공하지 않습니다.

대신에 1차원 배열의 배열 요소로 또 다른 1차원 배열을 사용하여 2차원 배열을 나타낼 수 있습니다.

 

타입 배열이름[열의길이][행의길이];

 

예제

 

#include <stdio.h>

void main()
{
	
	char data[3][4] = { { 0, 0, 2, 0 }, { 1, 1, 0, 0 }, {2, 1, 0, 2 } };
	int x, y;

	for (y = 0; y < 3; y++) {
		for (x = 0; x < 4; x++) {
			printf("%d행 %d열에", y + 1, x + 1);
			if (data[y][x] == 1) printf(" 검은돌이 놓여있습니다.\n");
			else if (data[y][x] == 2) printf(" 흰돌이 놓여있습니다.\n");
			else printf("는 돌이 놓여있지 않습니다.\n");
		}
	}
}

타입 배열이름[열의길이][행의길이];

타입 배열이름[열의길이][행의길이];

Comments