본문 바로가기

반응형

Programming/C++ 2

(32)
[C++] 4장. 복합 데이터형 - (7) 포인터와 메모리 해제 데이터를 저장할 때 프로그램이 알아야 하는 것 어디에 저장되는가? 어떤값이 저장되는가? 어떤 종류의 정보인가? ->변수 / 포인터를 이용 포인터 값의 주소를 저장하는 변수 메모리 관리에 필수적이다 포인터의 이름이 주소를 나타낸다 & 참조연산자 주소연산자 변수 앞에 붙이면 그 변수의 주소 * 역참조 연산자 포인터 이름 앞에 붙이면 그 주소에 저장되어 있는 값 & 연산자로 주소를 알아낸다 int donuts = 6; double cups = 4.5; cout * p_updates : int형 변수 -> int* p_updates : int형 포인터 -> int* : 하나의 데이터형 포인터 변수 선언시 주의 int* p1, p2; int형 포인터 p1 int형 변수 p2 [int형 포인터가 아니라 변수를 선언..
[C++] 4장. 복합 데이터형 - (5) 공용체와 (6) 열거체 5. 공용체 union 서로 다른 데이터형을 한 번에 한 가지만 보관할 수 있는 매주 제한적인 데이터 형식 따라서 어느 한 시점에 한 가지만 보관할 수 있다. 가장 큰 멤버를 보관할 수 있을 만큼의 공간이 필요하다 크기는 가장 큰 멤버의 크기 익명 공용체 이름이 없고 동일한 주소를 공유하는 변수들을 가진다 한 번에 한 멤버만 사용 가능 6. 열거체 enum const를 사용하여 기호 상수를 만드는 것을 대체하는 방법 제한된 새로운 데이터형 정의 enum spectrum {red, orange, yellow, green, blue, violet, indigo, ultraviolet}; -> spectrum을 새로운 데이터형의 이름으로 생성 -> 각각을 0~7까지의 정수 값을 나타내는 기호 상수로 만들고 이..
[C++] 4장. 복합 데이터형 - (4) 구조체 4. 구조체 모든 정보를 하나의 단위로 묶을 수 있는 데이터 형식 여러 종류의 데이터를 저장 가능 외부선언과 내부선언 [외부 변수와 내부 변수] 구조체 변수 변수 초기화는 한 행에 나타낼 수도 있다 공백을 가지면 0으로 초기화 guest.name; pal.name; guest.pcrice+pal.price; -> 멤버 연산자를 이용해 구조체의 개별적인 멤버 접근 string클래스로도 구조체 멤버 변수 가능 구조체 대입 구조체 정의와 동시에 구조체 변수 생성과 생성과 동시에 초기화도 가능하다 구조체를 함수의 매개변수로 전달 구조체를 리턴값으로 사용 구조체를 다른 구조체에 대입 [멤버별 대입] struct inflatable { ... } int main() { inflatable bouquet = //'=..
[C++] 4장. 복합 데이터형 - (3) String 클래스 3. String 클래스 문자 배열 보다 쉽고 편하게 문자열을 저장하는 방법 string 헤더 파일 추가해야 한다 문자열을 하나의 데이터형처럼 취급할 수 있다. char charr1[20]; char charr2[20] = "jaguar"; 기존의 문자 배열 -> 배열의 크기를 정해줘야 하며, 선언과 동시에 초기화 한다. 또한, 배열간 대입도 불가 string str1; string str2 = "panther"; string 객체 -> 단순한 변수로 선언, 배열의 크기는 알아서 정해주고, 배열 대입도 가능 String의 결합 string str3; str3 = str1 + str2; str1 += str2; string 객체의 편리함 ( 대입 , 추가, 첨부 ) string s1 = "penguin";..
[C++] 4장. 복합 데이터형 - (2) 문자열 2. 문자열 배열에 문자열 저장하기 char cat[8]={'f', 'a', 't', 'e', 's', 's', 'a', '\0'}; -> 문자 상수로 초기화 하는 방법, 문자열의 끝에는 \0이 꼭 들어가야 한다. char fish[] = "Bubbles"; -> 문자열 상수로 초기화 하는 방법, 크기와 \0를 컴파일러가 알아서 처리한다. [간단하고 안전한 방법] const int Size = 15; char name1[Size]; char name2[Szie] = "C++owboy"; cout
[C++] 4장. 복합 데이터형 - (1) 배열 1. 배열 배열 초기화 규칙 초기화 형식은 배열을 정의하는 곳에서만 가능하다 배열의 특징 배열을 배열에 대입 불가 부분적으로 초기화 가능 (나머지 0 대입) 배열 초기화시 대입 연산자는 생략 가능 공백을 이용해 0으로 초기화 가능 원소의 개수를 컴파일러가 결정하게 할 수 있다. Short_things[] = {1, 5, 3, 8}; 배열 원소의 개수 변수 int num_elements = size of things / size of(short); 리스트 초기화시 narrowing 방지 기능 narrowing이란 작은 자료형에 큰 자료형을 대입하는 것을 뜻한다. long plifs[] = {25, 52, 3.0}; -> long 자료형은 3.0 허용이 안된다. char slifs[4] = {'h', 'i'..
[C++] 4장. 복합데이터형 개요 배열 프로그램 분석 배열 초기화 규칙 C++11 배열 초기화 문자열 문자열 상수의 결합 배열에 문자열 사용 문자열 입력 한 번에 한 행의 문자열 입력 읽기 문자열과 수치의 혼합 입력 String 클래스 C++11 문자열 초기화 대입, 결합, 추가 string 클래스의 조작 string 클래스의 입출력 다른 형태의 문자열 상수 구조체 프로그램에 구조체 사용하기 C++11의 구조체 초기화 구조체와 string 클래스 멤버 구조체의 기타 특성 구조체의 배열 구조체 안의 비트 필드 공용체 열거체 열거자 값의 설정 열거체의 값 범위 포인터와 메모리 해제 포인터의 선언과 초기화 포인터의 위험 포인터와 수 new를 사용한 메모리 대입 delete를 사용한 메모리 해제 new를 사용한 동적 배열의 생성 포인터, 배열,..
C++ 공부하기 2

반응형