C
10장. 구조체
구조체는 왜 사용할까 ? 자료를 체계적으로 관리하기 위해서 ! Person 이라는 구조체를 만들었을 때 -> A, B, C라는 사람을 쉽게 생성하고 관리할 수 있다. 구조체는 struct 으로 정의한다. (data stucture의 약어) 구조체는 관련 정보를 하나의 의미로 묶을 때 사용한다. 선언 : struct 구조체 이름 변수이름; 구조체 변수를 선언하면서 초기화 : struct 구조체 이름 변수이름={ .변수=값, ..}; 정의 : struct 구조체이름 { ..... }; 구조체를 정의하면서 변수 선언 : struct 구조체이름 (...) 변수; 접근 : 구조체 변수.구조체 멤버 구조체 멤버에 접근할 때는 . 을 사용한다. ex) person1.age=19; 문자열 멤버는 할당 연산자로 저장할 ..
9장. 문자열
문자열을 대입하는 함수 strcpy #include 문자열을 모두 바꿈 strcpy(복사 받을 곳, 복사할 내용) 첫 번째 인수는 char 배열이나 배열명을 저장한 포인터만 사용 가능 두 번째 인수는 문자열의 시작위치를 알수 있다면 모두 가능 원하는 개수의 문자만을 복사하는 strncpy #include 원하는 문자열만 대입 strncpy(복사 받을 곳, 복사할 내용,복사할 문자 수) 문자열을 붙이는 strcat, strncat 문자열의 길이를 반환하는 strlen
8장. 포인터
포인터란 ? 사용 이유 : int array[size] 와 같이 크기를 내가 원하는 값으로 설정하기 위해 주소를 저장하는 일정한 크기의 메모리 공간 (주소는 시작 주소 값 자체) 포인터는 가리키는 변수의 형태가 같을 때만 대입해야 한다. 형 변환을 사용한 포인터의 대입이 가능하다. 동적 vs 정적 - 동적 : 메모리를 힙에서 할당 받으며, malloc 함수를 통해 크기를 동적으로 할당 장점: 유연성이 높다. 단점: 잘못 사용하였을 때 메모리 누수가 발생한다. - 정적 : 메모리를 스택에서 할당 받으며 크기를 미리 정한다. 장점: 유연성이 없다. 단점: 간편하게 메모리를 할당 받을 수 있다. 주소 연산자 & 주소: 변수가 할당된 메모리 공간의 시작 주소 변수가 선언되면 각 자료형의 크기만큼 메모리에 저장 ..
7장. 배열
배열 메모리에 연속적으로 저장해놓고 쪼개서 사용하는 방법 1. 자료형 배열명 [저장개수]; 2. 자료형 배열명[저장개수]={ ......}; 배열을 초기화 할 때는 중괄호 사용 배열 요소의 개수 : sizeof(배열명) / sizeof(배열 요소) char 배열 1. 자료형 배열명 [저장개수]= { 'a', 'b', 'c' }; 2. 자료형 배열명 [저장개수]="abc"; 저장할 문자열의 길이보다 하나 이상 크게 배열을 선언해야 함 (\n을 저장하기 위해) char 배열의 크기는 최대한 넉넉하게 선언해야 함 문자열 대입 문자열의 길이가 다를 수 있으므로 char형 배열에 새로운 문자를 저장하는 strcpy 함수를 사용한다. strcpy(저장될 배열명, "저장할 문자" or 저장 할 배열명); 문자열 전용..
6장. 함수
함수 함수를 실제 코드로 만드는 것 반환형 함수명(매개변수1, 매개변수2....){ .... } 매개변수가 없는 함수 : 값을 받을 필요가 없을 때 반환 값이 없는 함수 : void를 반환형으로 사용, return 생략 가능