C언어 (16) 썸네일형 리스트형 추가 개념 정리 / 문제 해결 능력에 관하여 1챕터와 2챕터를 통괄하는 보충 강의 와 문제해결능력에 대한 강의 노트 특수문자 \n : 다음 줄 \t : 탭 문자 (4~8칸 만큼 공백을 만든다 ) \" : 따옴표 (큰따옴표를 문자열 안에서 활용) \0 : 널 문자 (0) 변수의 타입 byte 수를 대충은 인지하고 있어야 한다. 음수가 양수보다 한개 더 많다 (|최소값| > |최대값|) 0을 포함한 이진수 이기 때문 음수가 있는 변수를 signed 데이터 타입 부호가 있다라는 뜻 부호가 없이 쓰고싶을 땐 앞에 unsigned를 붙여주면 된다 -> 부호 없는 정수 (unsigned는 float나 double에는 쓸 수 없다) long 이라는 데이터 타입은 시스템에 따라서 크기가 달라진다. 32bit에서는 4byte, 64bit에서는 8byte 하지만 l.. 함께 만드는 코딩 #1 - MBTI 성격검사 테스트 헤더파일 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include // 질문 + 강한부정 -3 약한부정 -1 약한긍정 1 강한긍정 3 // 값을 입력 받는 걸 함수로 만들기 // 함수를 2개 만들어야할듯 -3 -1 1 3 이랑 3 1 -1 -3 두가지 경우 // case로 각 항목 별로 구분하여 각 항목의 더한 값을 I/E 인지 구분하여 출력 if 쓰면될듯 // 결과들을 조합해야겠다 배열로 하는게 베스트일듯 int myInput(); int myScore(); int myScore2(); char myMbti(); #include "prc.hpp" // MBTI // I E // S N // T F // J P int mai.. 심화 C 언어 8 (함께 만드는 코딩 #1 - MBTI 성격검사 테스트) 성향 : 내향 / 외향이냐에 따라 I / E 인식 : 감각 / 직관이냐에 따라 S / N 근거 : 사고 / 감성이냐에 따라 T / F 양식 : 판단 / 인식이냐에 따라 J / P 이 네 가지 카테고리에서 하나씩 선택하여 16가지 배리에이션을 만드는 것이 MBTI 어떤 문항을 입력하고 해당 문항에 수치를 입력해서 해당 문항에 긍정지수 부정지수 수치에 따라서 내향성인지 외향성인지 등등을 단순히 점수제로 단순히 덧셈 뺄셈해서 나오는 최종적인 결과를 가지고 판단하면 된다 총 4가지 변수 (1) MBTI 검사지의 원리 - 성향 내향성 : I 외향성 : E int score_I_E = 0;으로 상정 값이 음수라면 I, 양수라면 E (2) MBTI 검사지의 원리 - 인식 주변을 인식하는 방법(인식)이 감각인지 직관인.. 심화 C 언어 7 (매크로 - C/C++의 독특한 매력) 전처리기 # 전처리는 모두 #으로 시작한다 #include 또한 #으로 시작하기 때문에 전처리 즉 매크로 #define_CRT_SECURE_NO_WARNINGS 구문도 마찬가지 #으로 시작했기 때문에 전처리 이다 #include #include 전처리기는 소스코드의 텍스트를 그대로 복사해서 붙여넣는 전처리기다 이를 통해 C/C++ 는 함수의 선언이 존재함을 이해할 수 있고 이를 통해 우리가 만들어두지 않은 함수들인 printf 나 scanf 등을 활용할 수 있다 #define #define 전처리는 적당한 규칙으로 소스코드를 교체할 수 있으며, 이를 통해 프로그래머가 상수를 지정할 수 있고, 매크로 함수 또한 지정할 수 있다 정확히 알아둬야 할 것은 #define으로 만들어진 매크로 함수는 실제로 함수의.. 심화 C 언어 7 (포인터 - 포인터의 포인터, 함수의 파라미터의 포인터) 0-value, nullptr : 포인터는 nullptr 이라는 값으로 0-value가 지정가능하다 0-value 란 각각의 변수가 가질 수 있는 무(zero) 값, 기본값, 최초값 등을 의미한다 0-value 에는 널문자, 0, false, nullptr 등이 있다 포인터도 역시 0-value를 가질 수 있으며 포인터에서의 0-value는 nullptr 이다 포인터에는 어떤 주소값이 들어가는데 이 주소값이 처음에는 초기화되지 않은 주소값을 가리키게 됨 이를 우리는 쓰레기 주소값이라고 함 포인터 변수를 만들게되면 이 변수의 값이 무슨 값이 들어있는지 프로그래머는 예측을 할 수가 없다 그래서 변수를 만들고 나서 0 value로 초기화를 해 줘야함 #include #include int main() { in.. 심화 C 언어 6 (포인터 3 - 메모리 동적할당 / 배열) 포인터와 배열 : 배열 변수명에는 '배열' 이라는 의미보다 '포인터' 라는 의미를 갖고 있다 배열 변수명의 의미 : 정확히 말하자면 다르지만 배열 변수명은 '포인터' 라고 볼 수 있다. 배열 인덱스를 집어넣어 값을 가져오는 [] 대괄호는 해당 주소값에서 몇번째 뒤쪽의 값을 가져오느냐 라는 의미를 갖고있다 배열도 근본은 포인터랑 같다 #include "prc.hpp" int main(){ int myArray[100]; // myArray 부분은 주소를 갖고있다 int* pMyArray = myArray; // pMyArray 라는 배열 변수에 주소를 집어넣어 줄 수가 있다 pMyArray[0] = 100; pMyArray[1] = 200; pMyArray[2] = 300; printf("%d\n", my.. 심화 C 언어 5 (포인터 2 - 포인터를 쓰는 이유) 값을 서로 뒤바꿔야 하는 함수인 swap 이라는 함수 포인터가 없는 상태로는 값을 서로 뒤바꿀수가 없다 방법 1 #include "prc.hpp" void swap (int* a, int* b) { int temp; temp = *a; *a = *b; *b = temp; } int main(){ int v1 = 100; int v2 = 200; swap(&v1, &v2); printf("v1 : %d\nv2 : %d\n", v1, v2); return 0; } 방법 2 #include "prc.hpp" void swap (int& a, int& b) { //int의 reference 타입, 변수 그 자체를 가져온다 생각 int temp; temp = a; a = b; b = temp; } int main.. 심화 C 언어 4 (포인터 1 - 기초) 변수의 3요소 변수의 이름 : (프로그래머가 필요로 하는 이름) 변수의 주소 : (컴퓨터가 필요로 하는 이름) 변수의 값 : 변수가 담고 있는 값 이름과 주소 : 프로그래머는 '변수의 이름'을 이용해 변수를 구분하지만 컴퓨터 (기계)는 '변수의 주소'를 이용해 변수를 구분한다 즉, 변수의 주소는 컴퓨터에게 있어서의 변수명 포인터 C/C++ 에서는 이 컴퓨터 (기계)에게 적용되는 변수명인 '주소' 라는 것을 직접적으로 조작할 수 있는 포인터 라는 '방법'을 제공하는데 이 주소를 조작하는 것을 '포인터를 이용한다'라고 한다. 포인터 데이터 타입 : 모든 기본형 데이터 타입 포함 사용자 정의 데이터 타입 바로 오른쪽에 *(애스터리스크)를 붙여주게 되면 해당 데이터타입의 포인터 타입이 만들어지게 된다 int*m.. 이전 1 2 다음