본문 바로가기

Study/C C++

[두들낙서] 구조체 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 더보기
[두들낙서] 조건문 if문 - if 뒤에 들어가는 조건은 참:1, 거짓:0을 통해 판별한다 - if (1), if (True) 뒤의 코드는 실행시킨다. - if (0), if (False) 뒤의 코드는 실행시키지 않는다. NOT - else는 앞의 조건문이 참이면 실행시키지 않고, 앞의 조건문이 거짓이면 실행시킨다. - else 뒤에 if문을 붙여 추가 조건을 붙일 수 있다. ex) if (n > 0) { printf("n은 양수\n"); } else if (n = 0) { printf("n은 0\n"); } else { printf("n은 음수\n"); } 중첩 if문 - if문 안에 if문 입력으로 중첩이 가능하다 ex) if (a > b) { if (a > c) { printf("%d\n", a); } else { /.. 더보기
[두들낙서] 연산 대입연산 - =를 사용하여 변수에 수를 대입하는 연산법 ex) a = a + 6, a = a * 7 .. - +=, -=, *=, /= 등으로 깔끔한 형태로 만들 수 있다. ex) a += 6, a *= 7 .. 가감산 - ++, --를 사용하여 1씩 가감산을 할 수 있다. ex) (a++) = (a = a + 1) - 전치: 연산을 할 때, 가감산을 먼저 한다. ex) a = 10; b = ++a; a : 11, b : 11 - 후치: 연산을 할 때, 가감산은 제일 마지막에 한다. ex) a = 10; b = a++; a : 11, b : 10 비교연산 - >, b; q = a < b; r = a == b; p : 0, q : 1, r : 0 논리연산 - &&, ||, ! 등을 사용하여 논리연산을 만들.. 더보기
[두들낙서] 자료형 정수형 - 실수를 정수형 변수에 담을 수 없다 ex) int a = -3.14 -> -3 char - 8bit(1byte) - 문자를 담는데 사용 - 문자: 반각문자(ABCabc12378_+/;\#% 등), 한글, 한자, 일본어, ··· short - 16bit(2byte) - 정수를 담는데 사용 long - 32bit(4byte) - 정수를 담는데 사용 long long - 64bit(8byte) - 정수를 담는데 사용 int - 시스템에 따라서 자동결정, 대체로 long(32bit, 4byte) - 정수를 담는데 사용 - printf에 %d 사용 - 정수형 간의 나눗셈(/)은 몫을 반환 - 정수형 간의 %는 나머지를 반환 실수형 - 정수를 실수형 변수에 담을 수 있다 ex) double b = 10 .. 더보기