본문 바로가기
자격증

프로그래밍 언어 : C언어 편

by 보끔밥0130 2023. 3. 3.
728x90

!---------- Day 1 ----------

소프트웨어 개발 절차
분석 , 설계구현 , 테스트유지  보수

구현에 필요한 프로그래밍 언어


프로그래밍 언어
프로그램은 명령어의 집합입니다.

프로그래밍 언어는 2가지로 구분합니다.

컴퓨터 중심의 저급 언어 (기계어 0 1 비트)

사용자 중심의 고급 언어 (C, Python)


자료의 단위
bit : 정보의 최소 단위 (1bit, 0 1)
Byte : 8bit 256가지 정보 표현

bit Byte  KB  MB  GB  TB
byte bit * 8
Byte부터 * 1024(2 10배씩 증가합니다.

코드 체계
ASCII code (아스키 코드) - 7bit, 128 문자만 표현
Uni code (유니 코드) - 16bit,  나라별 언어를 모두 표현

!---------- Day 2 ----------

순서도 (논리적 절차) :
입력 (변수 선언변수 초기화 처리  출력  과정을 만들어야 합니다.

 타원 : 시작 또는 
 직사각형 : 입력
 다이아몬드 : 조건
 True : 아래쪽 분기
 False : 분기 빠져 나옴

!---------- Day 3 ----------

#include <stdio.h>
#include <stdbool.h>
main()
{
int number = 1;
int sum = 0;
while(number <= 10)
{
sum = sum + number;
number++;
}
printf("\n 1+2+...+10 = %d \n", sum)
}

! C언어 기본 구조 문법
1. #include <stdio.h>
데이터 /출력을 위해 stdio.h 파일을 현재 파일에 포함 (출력함수인 printf() 사용가능)

#include
기호는 전처리기 (먼저 처리하는 기호)

외부 파일을 현재 파일에 포함시키기 위해 사용하는 선형 처리 지시자

stdio.h : Standard input output(표준 입출력헤더파일

헤더파일(.h) : 자주 사용되는 변수나 함수를 외부에서 편리하게 사용하기 위해 만들어진 파일
 
2. main()
항상 메인 함수로부터 실행이 시작됩니다. (운영체제가 메인 함수를 호출)


;(세미콜론) : 문장의 끝을 의미하는 마침표


3. printf();
모니터에 출력


!---------- Day 4 ----------

key point : 데이터 타입변수연산자/출력 함수

! Data type (데이터 타입)
변수에 저장될 데이터의 형식을 나타내는 
변수에 값을 저장하기 전에 어떤 형식의 값을 저장할지 데이터 타입을 지정하여 변수를 선언

>> C data type : 

정수형 - short(2 Byte) / int(4 Byte) / long(4 Byte) / long long(8 Byte)

부호 없는 정수형 - unsigned short(2 Byte) / unsigned int(4 Byte) / unsigned 
long(4 Byte)

실수형 - float(4 Byte) / double(8 Byte) / long double(8 Byte)

문자형 - char(1 Byte)

부호 없는 문자형 - unsigned char(1 Byte)

>>  Java data type:

정수형 - byte(1 Byte) / short(2 Byte) / int(4 Byte) / long(8 Byte) 

실수형 - float(4 Byte) / double(8 Byte) 

문자형 - char(2 Byte)

논리형 - boolean(1 Byte)

>> Python data type :

정수형 - int (제한 없음

실수형 - float(8 Byte) / complex(16 Byte)

문자형 - str (제한 없음)

* int 플랫폼에 따라 실제크기가 달라집니다.
32bit에서 32비트(4 Byte)이고 64bit에서 64비트(8 Byte)

변수 Variable
정의 : 값을 저장하기 위한 공간변할  있는 

작성 규칙 :
 글자 숫자  
공백이나 특수 문자를 사용할  없다
대소 문자를 구분합니다.
예약어를 변수명으로 사용할  없다
변수 선언  문장 끝에 반드시 세미콜론을 붙인다.

변수 선언 :

변수를 상수(변경되지 않는 ) 변경하는 예약어 const (JAVA에서 final)


!---------- Day 5 ----------

연산자 :
증가/감소 연산자산술 연산자논리 연산자관계 연산자할당 연산자비트 연산자


>> 증가/감소 연산자 :
전치 - 변수를 먼저 증가/감소 시킨  사용 ++A
후치 - 변수 먼저 사용  증가/감소 A++

>> 산술 연산자 :
사칙 연산자나머지 연산자 %

>> 논리 연산자 : && 모두 T 이면 T, || 하나라도 T 이면 T, !a a 1 경우 0, 0 경우 1
우선 순위 :  ! → && → || 


>> 관계 연산자 : >,>=,<=,<,==,!=

>> 할당 연산자 : +=,-=,*=,/=

>> 비트 연산자 :

& 비트 곱 - 두 비트가 모두 1이면 결과 1 그렇지 않다면 모두 0, 
| 비트 합 - 두 비트 중 하나라도 1이면 결과 1 그렇지 않다면 0,
^ XOR - 두 비트가 같으면 0, 다르면 1,
~ 비트 부정(1의 보수),
피1 << 피2 왼쪽 시프트 (피1을 2진수 표현에서 피2 만큼 값 왼쪽이동), 
피1 >> 피2 오른쪽 시프트 (피1을 2진수 표현에서 피2 만큼 값 오른쪽이동)

>> 조건 연산자 : 조건 ?  실행 : 거짓 실행;

>> cast 연산자 : 강제적으로 데이터 형 변환, 변수 = (형변환)데이터 ex. a = (int)3.0

>> sizeof 연산자 : 피연산자의 크기를 바이트 단위로 계산


/출력 함수
출력함수 : printf(서식 문자열변수);

서식문자 : 
정수 - %o (octal) 8진수, %d (decimal) 10진수, %x (hexadecimal) 16진수(10부터 A)
문자 - %c (character) 문자, %s (string) 문자열 

제어문자 (출력물 위치) : \n (new line), \r (carriage return) 커서  , \f (form feed)  페이지 넘김,  \b (backspace), \t (tab)

입력함수 : scanf(서식 문자열변수의 주소);

변수의 주소 : 
데이터를 입력 받을 변수변수의 주소로 입력 받음 
변수에 &(주소 연산자붙이기 배열의 변수는 &없이 입력

!---------- Day 6 ----------
key point : 제어문 (while, for), 배열(Array), 문자열

제어문 
조건 지정진행 순서 변경
True 경우 내부 {} 실행

#include <stdbool.h> 헤더 파일을 사용하면 true, false 사용 가능

반복문
while : 조건이 거짓이면  번도 수행하지 않는다

do while : 조건이 거짓이라도  번은 수행한다.

break : 가장 가까운 루프를 벗어나는 명령어

if(조건)break;

for : for(시작 조건종료 조건증감)
문장;


!---------- Day 7 ----------
조건문 :

>> 기본 if

if(조건){
문장;
}
else{
문장;
}

>> 다중 if :

변수 초기화
if (조건){
문장;
}
else if (조건){
문장;
}
else if (조건){
문장;
}
else{
문장;
}


>> swich ~case : 다중 if문을 간략화
swtich(조건){
case :
문장;
break; 
}

break 생략  일치하는 실행문 부터 종료될 때까지 모든 문장 실행됨

>> continue : 다음 반복을 실행하기 위하여 사용하는 명령문

다음 문을 실행하지 않고 바로  루프의 선두로 되돌아가 실행

for문에서는 증감식을 실행하고 while문이나 do while문에서는 조건식을 검사


배열
 가지 자료형을 연속적으로 나열

>> 1D 배열
형식 1.
자료형 배열이름 [배열의 크기]
배열이름[인덱스] = ;

배열 인덱스는 항상 '0'부터 시작합니다.

형식 2.
자료형 배열이름 [배열의 크기] = {1, 2, ... }
만약 초기화 데이터가 배열의 크기보다 적으면 나머지 원소들은 0으로 초괴화


>> 이차원 배열
형식.
자료형 배열이름 [][];


문자열
C언어에서는 문자 자료형은 있지만 문자열을 저장할  없다.

배열을 이용하여 문자 배열을 만듭니다.

char string[] = "save sentence"

!---------- Day 8 ----------

함수
여러번 사용되는 코드 묶음

>> 표준함수 : 미리 제공하는 함수

>> 사용자 정의 함수 : 임으로 만들어 정의할  있는 함수

형식.
리턴형 함수명(매개변수){
문장;
}

리턴형 : 함수가 리턴하는 값의 데이터 타입
리턴 값이 없는 경우 void라고 명시합니다.

매개변수(parameter) : 함수가 전달받는 값으로 타입과 함수내에서 쓰일 이름을 적습니다.
없을 수도 있고 , 여러  있을 수도 있습니다.


전달 인수 (argument) : main에서 함수를 호출할  입력하는 매개변수

return : 피호출함수(부르려는 함수) 계산 결과를 호출 함수(메인에 함수) 값을 돌려주기 위해 사용

main()에서 return 0; 프로그램 정상적인 종료 (생략 가능)

!---------- Day 9 ----------

구조체 (Struct)
정의
데이터(변수) 체계적으로 관리하기 위한 문법 (관련 정보를 하나의 의미로 묶음)
JAVA(객체 지향 프로그래밍)에서 class 유사
구조체는 서로 다른 자료형을 묶는 점에서 배열(같은 자료형 묶음) 차이가 있다.


형식1.
struct 구조체 이름{
구조체 멤버1;
구조체 멤버2;
}

구조체 이름은 대문자를 사용하는 관례가 있다

선언1. (main())
struct 구조체이름 변수선언 = {1, 2} 

선언2.
struct 구조체이름;
strcpy(구조체이름.멤버1, 1);
구조체이름.멤버2 = 2;

선언3.
truct 구조체이름 배열 ={
{1, 2},
{3, 4}  
}

typedef : type define, 자료형 이름의 길이를 간결하게 재정의
typedef unsigned int USINT;
USINT temp; 

구조체 선언 생략 가능해짐
typedef struct {} PERSON

main(){
PERSON p1 =  {1, 2};
}

728x90

'자격증' 카테고리의 다른 글

컴퓨터 공학 기초  (0) 2023.03.05
프로그래밍 언어 : 파이썬 편  (0) 2023.03.05
프로그래밍 언어: 자바편  (0) 2023.03.04

댓글