목록C언어/C프로그래밍 기초(2학기) (5)
Trivia
9.1 공용체(Union) ▶메모리 영역을 여러 개의 변수들이 공유할 수 있게 하는 기능: 메모리 절약의 효과 ▶선언하는 방법은 구조체와 매우 유사 (태그를 붙여 사용) ▶동시에 모든 멤버 변수들을 저장할 수 없으며 어떤 순간에는 하나의 멤버만 존재 ▶가장 큰 멤버의 크기만큼의 메모리가 할당 union example { char c; //같은 공간 공유int i; //같은 공간 공유};- union: 키워드, example: 공용체 태그 이름- 변수 c와 i: 공용체 멤버 변수 ex) 예제 프로그램#include #include union example { int mem1; int mem2; double mem3;};int main(){ union example ex; ex.mem1=1230; print..
8.1 구조체 배열 ▶구조체가 여러 개 모인 구조 ①선언: int, char 배열을 선언하는 것과 유사(단, struct가 붙음) struct student {int number;char name[10];double grade;}; int main(){struct student list[100]; //구조체의 배열 선언 list[2].number = 201812300;strcpy(list[2].name,"홍길동");list[2].grade = 3.7; ②초기화: 배열 초기화 안에 구조체 초기화가 들어가야 하므로 중괄호 안에 중괄호가 필요 struct student list[3] = {{ 1, "Lee", 160 },{ 2, "Son", 164 },{ 3, "Min", 173 } }; cf) 각 요소들의 ..
7.1 구조체란? ▶C언어의 자료형 1. 기본 자료형: char, int, double 등2. 파생 자료형: 배열, 포인터, 구조체, 열거형, 공용체 등cf1) 서로 다른 형태의 데이터 결합이 매우 유용 cf2) 여러 개의 자료형을 묶어서 새로운 자료형 생성 가능cf3) 배열: 같은 타입의 집합, 구조체: 다른 타입의 집합 7.2 구조체의 선언, 초기화, 사용 ▶선언(정의): struct라는 키워드를 사용하여 정의 struct 태그 {자료형 멤버1;자료형 멤버2;...}; 1. 구조체 태그는 변수가 아님 (각 구조체를 구별하기 위한 이름)2. 중괄호 안에 원하는 변수들을 선언 (=구조체 멤버)3. 구조체의 정의가 끝나면 세미콜론(;) 삽입 cf1) 구조체 선언≠변수 선언cf2) 구조체 선언은 안에 어떠한..
1.4 포인터 연산 ▶덧셈, 뺄셈 연산포인터 변수에 대한 연산은 일반적인 변수에 대한 연산과는 약간 상이증가, 감소되는 값은 포인터가 가리키는 객체의 크기cf) 객체의 크기에 따라서 증가, 감소되는 값이 달라짐 포인터 타입 ++연산 후 증가되는 값 char 1 int 4 float 4 double 8 ex) 예제 프로그램 : 포인터의 증감연산//포인터의 증감 연산#include int main(){ char *pc; int *pi; double *pd; pc=(char *)10000; pi=(int *)10000; pd=(double *)10000; printf("증가 전 pc=%d, pi=%d, pd=%d\n", pc, pi, pd); pc++; pi++; pd++; printf("증가 후 pc=%d,..
1.1 포인터란? ▶정의메모리에 있는 데이터의 주소를 가지고 있는 변수변수이지만 데이터값을 가지는 것이 아니라 데이터의 주소를 가짐데이터의 복사를 피하고 공유하여 작업하고자 할 때 사용 ex) 컴퓨터공학부에 대해 알고싶을 때 도서관에 있는 책의 내용을 다 복사해오는것이 아니라 그 정보들이 있는 위치(주소)만 공유하는 것 (=call by reference)변수가 저장되는 주소와 매우 밀접한 관계cf) 변수는 컴퓨터의 메모리에 저장cf) 메모리는 바이트 단위로 접근하며 변수의 크기에 따라서 차지하는 메모리 공간이 달라짐ex) char형 변수: 1byte, int형 변수: 4byte ▶주소 연산자 '&'변수의 주소를 계산하는 연산자변수의 이름을 받아서 변수의 주소를 반환 ex) 변수 i의 주소: &i ex)..