대학교/C언어 10

C언어 - (10) 구조체

- 구조체 서로 다른 타입의 변수들을 묶어 사용 가능하게 한다. 아래와 같이 구조체 정의를 할 수 있다. EX) struct student { int number; double score; }; - 구조체 변수 선언 구조체 정의와 구조체 변수 선언은 다르다. struct student { //구조체 정의 int number; char name[10]; double grade; }; int main(void){ struct student s1={123,"홍길동",123}; //구조체 변수 선언 및 초기화 } +추가로 구조체 변수를 배열로 선언할 수도 있다. struct student list[100]; ​ ​ - 구조체의 멤버 참조 위의 소스코드의 s1의 구조체 변수를 참조하였을 때, s1.number =..

대학교/C언어 2023.06.02

C언어 - (9) 포인터

- 포인터 주소를 가지고 있는 변수를 의미한다. 변수는 메모리에 저장된다. 메모리는 바이트 단위로 액세스 된다. ​ 변수의 주소를 계산하는 연산자 : & ​ - 포인터의 선언 자료형과 포인터 변수 이름 사이에 연산자 *를 삽입한다. EX) int *ptrint; EX) int *ptrint, *ptrnum; ​ - 포인터와 변수의 연결 1. int i=10; int *p; p= &i; //변수 i의 주소가 포인터 p로 대입된다. //선언과 초기화를 동시에 하지 않으면 p에 주소를 대입한다. 2. int i=10; int *p=&i; //선언과 초기화를 동시에 하면 바로 주소값을 입력한다. - 포인터 초기화 포인터에 NULL을 대입하면 0번지를 의미한다. 일반적으로 0번지는 사용할 수 없는 것을 의미한다...

대학교/C언어 2023.05.25

C언어 - (7) 함수와 변수

- 변수 - 변수의 범위 1. 전역 변수 - 함수 외부에서 선언되는 변수, 범위는 소스 파일 전체이다. 0으로 자동 초기화된다. 지역변수와 이름이 같을 경우 지역 변수가 우선이 된다. 2. 지역 변수 - 블록 안에 선언되는 변수, 블록이 시작되면 생성되고 종료되면 사라진다. 초기화가 자동으로 되지 않는다. 함수의 매개 변수도 지역 변수의 일종이다. ​ ​ - 생존 기간 1. 정적 할당 : static - 프로그램 실행 시간 동안 계속 유지된다. ​ 2. 자동 할당 : auto - 블록에 들어갈 때 생성되었다가 나올 때 소멸한다. ​ + register : 레지스터에 변수를 저장 volatile : 하드웨어가 수시로 변수의 값을 변경하는 경우에 사용한다. ​ - 연결 : 다른 범위에 속한느 변수들을 서로 ..

대학교/C언어 2023.05.04

C언어 - (6) 함수

ㅊ- 함수 ​입력을 받아서 특정한 작업을 수행하여서 결과를 반환하는 역할을 한다. 장점 : 코드가 중복되는 것을 막을 수 있다. 재사용이 가능하다. 유지보수가 쉬워진다. ​ - 함수의 종류 1. 사용자 정의 함수 - 사용자가 직접 만든 함수 2. 라이브러리 함수 - 기본적으로 제공되는 함수 ​ - 함수의 정의 반환형 함수이름(매개변수) { 함수 몸체 } - 인수와 매개변수 인수 : 호출 프로그램에 의하여 함수에 실제로 전달되는 값이다. 매개 변수 : 이 값을 전달받는 변수이다. ​ - 반환값 함수가 호출한 곳으로 반환하는 작업의 결과값이다. - 함수 원형 컴파일러에게 함수에 대하여 미리 알리는 것 #include int CTF(double); //함수 원형 int main(void){ ~ } int CT..

대학교/C언어 2023.05.04

C언어 - (5) 반복문

- 반복문 - 반복 구조 : 어떤 조건이 만족될 때까지 루프를 도는 구조 - 반복문의 종류 : while(do_while), for 문이 있다. - while문 while(반복 조건) { 반복문장 } 반복문은 무한 루프 문제가 발생할 수 있기에 반복이 종료되는지 확인해야 한다. ​ ​ - if문과 while문의 차이점​ if문은 조건이 만족되면 1회만 실행되나, while문은 여러 번 시행한다. ​ ​ EX) 최대 공약수 찾기 (유클리드 호제법) #include int main(void) { int x, y, r; printf("두 개의 정수를 입력하시오(큰수, 작은수): "); scanf_s("%d%d", &x, &y); while (y != 0) { r = x % y; x = y; y = r; } p..

대학교/C언어 2023.04.14

C언어 - (4) 조건문, 반복문, 제어문

- 제어문 제어문은 조건문과 반복문으로 나뉜다. 알고리즘 순서도에서 조건문은 선택구조, 반복문은 반복구조로 나타낼 수 있다. - if-else 문 복합문 : 중괄호를 사용하여 문장들을 그룹핑하는 것 아래 예시와 같이 {}를 사용하여 문장들을 그룹핑하는 것을 말한다. if(score>=60) { printf(~); printf(~); } else: printf(~); 간단한 if-else문은 조건 연산자를 사용하여 표현할 수 있다. EX) (score>=60)?참:거짓; - 중첩 if if문 안에 if문이 들어간 형태이다. if(score>=80) if(score>=90) printf(~); - 연속적인 if if(조건식1) 문장1; else if(조건식2) 문장2; else 문장3; 여러 조건을 사용하여..

대학교/C언어 2023.04.01

C언어 - (3) 수식, 연산자, 형변환

- 수식 - 수식 : 상수, 변수, 연산자의 조합, 연산자와 피연산자로 나누어진다. ​ - 연산자의 분류 - 피연산자수에 따른 연산자 분류 1. 단항 연산자 : 피연산자의 수가 1개 EX) ++x; 2. 이항 연산자 : 피연산자의 수가 2개 EX) x+y 3. 삼항 연산자 : 연산자의 수가 3개 EX) x?y:z - 연산자 - 산술 연산자 : 컴퓨터의 가장 기본적인 연산 - 부호 연산자 : 변수나 상수의 부호를 변경 ​ - 증감 연산자 : 변수의 값을 하나 증가시키거나 감소시키는 연산자 - 대입 연산자 : 변수에 수식 값을 할당시키는 연산자 EX) z=x+y ​ - 복합 대입 연산자 : 소스를 간결하게 만들 수 있다. - 관계 연산자 : 두 개의 피연산자를 비교하는 연산자 (결과는 1 또는 0) + 실수..

대학교/C언어 2023.03.26

[전공] C언어 기초(2) - 연산, 정수 상수, 기호 상수

- 계산 1. 수식 : 피연산자와 연산자로 구성된 식 2. 대입 연산 : 변수에 값을 저장하는 연산 x=100; 3. 산술 연산 : 수학에서 사용하는 연산 기호를 사용한 연산 sum= x+y; - signed, unsigned 수식자 - unsigned : 음수가 아닌 값만을 의미한다. unsigned int - signed : 부호를 가지는 값을 의미한다. ​ + 오버플로우 : 변수가 나타낼 수 있는 범위를 넘는 숫자를 저장하려 할 때 발생 이를 해결하기 위해 unsigned를 사용하거나 더 큰 자료형으로 바꿀 수 있다. - 정수 상수 기본 형태 : sum=123; 상수의 자료형 명시 : sum=123L; //long형을 의미한다. - 기호 상수 - 기호를 이용하여 상수를 표현한 것을 말한다. 효과 :..

대학교/C언어 2023.03.21

[전공] C언어 기초(1) - 프로그램 기본 요소, 변수 등

- 프로그램 작성 단계 1.소스코드 작성 - 텍스트 에디터를 이용하여 소스 코드 작성 EX) test.c 2.컴파일 - 문법을 검사하면서 소스 파일을 기계어로 변환 EX) test.obj 3.링크 - 오브젝트 파일을 라이브러리와 연결하여 실행 파일 생성 EX) test.exe 4.디버그 - 실행파일을 실행 후 실행 오류를 수정 - 통합 개발 환경 위의 과정은 텍스트 에디터, 컴파일러와 링커, 디버거가 필요하다. 이를 모두 갖춘 환경을 "통합 개발 환경"이라 한다. EX) visual studio, vs code, dev c++ 등 - 알고리즘 순서도 코드를 알고리즘 순서도로 구성하여 나타낼 수 있다. 예시로 if문에 조건을 사용할 때는 "판단"을 이용하고, 코드의 시작과 끝을 나타낼 때는 "단말"을 이용..

대학교/C언어 2023.03.21