Programming Languages/C와 C++

1.선택 정렬 int a[10] = {7, 5, 2, 10, 8, 4, 3, 1, 6, 9}; 선택 정렬은 이 중에서 가장 작은 데이터를 선택해서 맨 앞의 데이터와 바꾸고 그 다음으로 작은 데이터를 선택해서 앞에서 두번째인 데이터와 바꾸는 작업을 반복해서 수행한다. 항상 가장 작은 데이터를 선택해서 정렬하는 방법이다. #include #include using namespace std; int a[10] = {7, 5, 2, 10, 8, 4, 3, 1, 6, 9}; int main(void) { for (int i = 0; i < 10; i++) { int min_value = a[i]; // 우선 i번쨰 값을 mininum으로 설정 int min_idx = i; for (int j = i+1; j < ..
1. Compiled Languages Example : C, C++, Swift, Go Compiled on OS directly. => They needed to be compiled to transform the source code to Machine code that CPU can execute. After the compilation, we need to build compiled file like EXE type to execute the source code. Good Point : Very fast -> They are good to deal with the data Bad Point : They need different compiler by each OS (Swift is compil..
괜히 이렇게 말을 붙이면 어렵다 call by value , call by reference 정확하게 한번 알아보자 ! 1. 값에 의한 호출(call by value) C언어는 함수의 인자 전달 방식이 기본적으로 값에 의한 호출이다. 값에 의한 호출이 대체 무엇인가?! 바로, 함수 호출 시 실인자의 값이 형식인자에 복사되어 저장된다는 말이다. '복사'되어 저장되니까 당연히 값에 의한 호출을 사용해서는 함수 외부의 변수 값을 함수 내부에서 수정할 수 없다 !
1. char 포인터 : 문자열의 첫 문자 주소를 저장하므로 문자열 상수의 주소로 사용한다. char *dept; char *dept = "일본어문학전공"; 이때 변수 dept은 "일본어문학전공" 값을 참조할 수 있다. 변수 dept는 포인터로 단순히 문자열 상수를 다루는 경우 효과적이다. dept = "컴퓨터공학과"; // 가능 strcpy(dept, "소프트웨어학부"); // 오류 - 문자열 자체를 저장하거나 수정하는 것은 불가능 scanf("%s", dept); // 오류 2. char 배열 : 문자열을 구성하는 모든 문자를 하나하나 저장하고 마지막에 '\0' 문자를 저장하여 사용한다. char name[12]; char name[12] = "free"; // free\0 이 저장된다. 변수 nam..
Enum (열거형) : 기호 상수들의 집합을 정수들로 매핑하는 선언 코드의 가독성을 높여주고 기호상수들의 이름으로 그 의미를 살릴 수 있다. enum day {MON, TUE, WED, THU, FRI, SAT, SUN}; // 0 부터 시작하여 1씩 증가하며 맵핑된다. 즉 0 1 2 3 4 5 6
개발할때 실제로 많이 안써봐서 생소했던 공용체 공용체 (Union) : 같은 메모리 영역을 여러 개의 변수가 공유한다. 공유하므로 어느 한 멤버의 내용을 변경하면 다른 멤버의 내용도 바뀐다. 공용체를 선언하고 사용하는 방법은 구조체와 비슷하다. 크기가 가장 큰 멤버 변수의 크기로 메모리를 할당한다. union id { int number; // 4 byte char name[14]; // 14 byte }; -> 공용체 id의 경우 크기가 가장 큰 멤버 변수인 name의 크기인 14byte로 메모리가 할당될 것이다.
1. 구조체 : 서로 다른 자료형을 갖는 변수들을 대표 이름으로 묶어 놓는 것 구조체를 선언하는 방법에는 세가지가 있다. // 1 struct student { int id; char name[10]; dounle grade; }; // 마지막에 세미클론 붙여주어야 함 struct student a; // OR student a; // 선언과 동시에 초기화 하기 struct student a = {20210123, "민지", 4.5}; // 2 struct student { int id; char name[10]; dounle grade; } a; //3 typedef struct { int id; char name[10]; dounle grade; } student; student a; typedef의..
ㄷㄷ 와 대체 C언어를 4학년때 다시 하는데 왜이렇게 깨닫는게 많은지 대박 이걸 몰랐네 왕신기하다 ! 하는 모먼트들이 종종 있다 ㅋㅋㅋㅋ int main(int argc, const char * argv[]) { int score[] = {77,88,99}; for (int i = 0; i < 3; i++) { printf("%2d %10u %6d \n", i, (score+i), *(score+i)); } return 0; } [RESULT] 0 4022334556 77 1 4022334560 88 2 4022334564 99 내 컴퓨터에는 저리 찍힌다 딱봐도 알겠지만 (score+i) 이게 주소값이다 이말은 다음과도 같다 !! &(score[i]) == score + i 대박사건~~~ 배열 그 자체에..
minjiwoo
'Programming Languages/C와 C++' 카테고리의 글 목록