본문 바로가기

전체 글

[두들낙서] 클래스와 객체 클래스 - 특정한 용도를 수행하기 위한 변수와 함수를 모아 둔 틀이다 자료형으로 볼 수 있다 - struct는 public 선언이, class는 private 선언이 기본이다 private - 클래스 내에서 private로 선언된 개체는 외부에서 접근이 불가능하다 클래스에서 선언되는 함수로만 접근 가능하다 ex) class TV { private: bool powerOn; int channel; int volume; } public - 클래스 내에서 public으로 선언된 개체는 외부에서 접근이 가능하다 private로 선언된 개체와 구분을 위해 사용한다 - private와 사용방법은 같다 객채 - 클래스라는 틀을 이용하여 찍어낸 개체(변수, 메모리상의 공간)이다 - 변수를 선언해 주듯이, 선언을 해주면.. 더보기
[두들낙서] C++ 스타일 문법 namespace - 사람의 성과 같이, 네임스페이스는 하위 변수, 함수들을 구분할수 있도록 해준다 - 사용 표현은 '(namespace)::(변수 또는 함수)'다 - 중첩 가능하다 - 네임스페이스 안에 있는 함수에 사용되는 변수는, 명시하지 않아도 네임스페이스의 변수를 사용한다 - 네임스페이스 선언과 정의를 떼어서 쓸 수 있다 처음 선언을 해주면 언제든지 정의를 별도로 해줄 수 있다 - using namespace를 사용하면, 명시하지 않아도 해당 네임스페이스로 인식한다 주의 네임스페이스 안에 있는 함수에 사용되는 변수가 다른 네임스페이스를 명시한다면, 명시된 변수를 사용한다 ex) namespace doodle { int n; void set() { n = 20; } } C언어와 다른점 1. 변수 선.. 더보기
[두들낙서] 상수 상수 - 변하지 않는 수 - 주로 대문자로 선언한다 const - 메모리에 저장되는 변수를 변경할 수 없도록 한다 ex) const float PI = 3.141592; macro - 메모리에 별도로 저장되지 않는 상수를 정의한다 - 코드를 정의할 수 있다 주의 상수명에 띄어쓰기는 불가능하다 주의 연산을 정의할 때 안전을 위해 매개변수 별로 괄호를 쳐줘야 안전하다 X*X에 A-1을 대입하면 A-1*A-1로 -1이 된다 ex) #define PI 3.141592 #define PRINT_HELLO printf("Hello"); enum - 원소들에 자동으로 번호를 붙여준다 - 상태를 사용하는 코드를 짤때 유용하다 주의 중간에 임의로 숫자를 붙여주면, 그 숫자부터 이어진다 0 1 5 6 ... ex) enu.. 더보기
[두들낙서] 구조체 typedef - 기존 자료형에 별명을 붙인다 - typedef 자료형 이름 순으로 선언한다 주의 배열에 사용하면 선언부에만 대괄호를 쓰고, 사용할 때는 대괄호를 쓰지 않는다 주의 포인터를 만들때 선언부에만 *를 쓰고, 사용할 때는 *를 쓰지 않는다 ex) typedef int Int32; typedef int Pair[2]; Pair point = {3, 4}; int point[2] = {3, 4};로 인식한다 구조체 - 중괄호 내부의 요소들을 갖춘 자료형이다 - 중괄호로 초기값을 설정해 줄 수 있다 - 주로 전역변수로 선언해준다 - 구조체의 메모리 크기는 중괄호 안 자료형들의 메모리 크기의 합과 같다 주의 포인터를 사용할 때 괄호에 유의해야 한다 예제에서 확인 주의 구조체도 자료형이기 때문에 cal.. 더보기
[두들낙서] 함수 함수 - 함수를 호출하면 중괄호 내의 코드들을 실행시키고, 호출 전으로 돌아간다 - 자료형과 함께 함수명을 붙이고 중괄호안에 코드들을 적는다 - printf와 scanf 등도 하나의 함수다 return - 함수에서 호출시에 자료형에 맞는 지정된 변수나 연산값을 반환한다 함수 자료형이 int라면 int값만 반환할 수 있다 - 값을 반환하면 실행중이었던 함수는 종료된다 반복문이라도 함수 내에서 발생했다면 종료된다 - return을 쓰지 않아도 함수는 종료될 수 있다 다만, 반환되는 값은 없다 주의 return 다음의 코드들은 실행되지 않는다 주의 함수의 자료형이 void라면 return할 수 없다 전역변수 - 함수 밖에서 선언된 변수로 모든 함수에서 접근이 가능하다 지역변수 - 하나의 함수안에서 선언된 변수.. 더보기
[두들낙서] 포인터 포인터 - 변수의 주소를 저장하는 변수다 - 포인터는 가리킬 변수의 형, '*', 포인터 이름 순으로 선언한다 - 포인터 앞에 '*'를 입력하면 포인터가 가리키는 변수의 값을 나타낸다 *ptr_a == a - 포인터에 1을 더하면 포인터 주소에 지정된 형의 크기만큼 더해진다 int의 포인터면 4가 더해진다 - 배열에서 포인터에 1을 더하면 다음 원소를 가리킨다 &a[0] + 1 = &a[1] 주의 변수의 주소는 상황마다 달라질 수 있으므로 절대적인 값을 가지지 않는다 ex) int a = 20; int *ptr_a; ptr_a = &a; 위의 2줄을 int *ptr_a = &a로 구현 가능하다 *ptr_a = 10; a의 값이 10이 된다 배열과 포인터 관계 정리 - ptr == &ptr[0] - *pt.. 더보기
[두들낙서] 배열 배열 - 변수들을 하나씩 선언하는 일을 줄이는 방법이다 - 대괄호를 이용해 선언한다 - 선언과 동시에 값을 입력할 수 있다 - 배열의 주소를 이용해 변수에 접근해 값을 입력, 출력할 수 있다 - 배열의 주소로 변수를 이용할 수 있다 반복문에 주로 사용 주의 배열의 마지막 주소는 '배열의 개수 - 1' 이다 주소가 0부터 시작하기 때문 ex) int a[5]; int a1; int a2; int a3; int a4; int a5;와 동일한 효과 int b[] = {3, 1, 4, 1, 5}; 중괄호 내부 원소 개수를 보고 자동으로 배열의 크기를 지정한다 a[0] = 2; a[1] = 3; for (i = 2; i < 5; i++) { a[i] = i * 5; } 결과 a[0] a[1] a[2] a[3] a.. 더보기
[두들낙서] 반복문 while문 - while 뒤의 조건이 참이면, 중괄호 안의 코드를 실행시키고 다시 조건을 확인한다 - while 뒤의 조건이 거짓이면, 중괄호 안의 코드를 실행시키지 않고 다음 코드를 실행한다 주의 while 뒤의 조건이 항상 참이면 무한반복한다 ex) while (i 더보기