본문 바로가기

멋쟁이 사자처럼 BE School

(13)
[멋쟁이사자처럼 Back-End School 1기] Day 16. 구조체, supe ,SSG https://www.notion.so/62c4065522e641a1a8e2103c3dbc3f68 권재순 HTML www.notion.so
[멋쟁이사자처럼 Back-End School 1기] Day 15. 전처리기, 응집도와 결합도, Composition, 배열과 리스트 C언어 전처리기 💡 전처리기? 컴파일 전에 처리하는 것 ❗define : 매크로 - 해당 변수 및 함수의 값을 미리 정해두는 것 ● 단순 매크로 : 기존의 기호상수 기능에서 사용하는 것과 같다. - 가독성이 높아진다. - 상수의 변경이 매우 용이해진다. ● 함수 매크로 : 마치 함수인 것 처럼 흉내를 낼 수 있는 기능 ❗include Chapter 26 문제 4. start_with 함수를 구현 #include typedef int bool; #define true 1 // 전처리기 true의 값을 1로 변환 #define false 0 int get_str_len(char* str) { for ( int i = 0; true; i++ ) { if ( str[i] == '\\0' ) { return i;..
[멋쟁이사자처럼 Back-End School 1기] Day 14. C언어, JAVA, TDD C언어 💡 0의 의미 ‘\0’ : 문자로써의 0 0 : 숫자로써의 0 null : 포인터로써의 0 Chapter 26 문제 1. 문장의 길이를 반환하는 함수 생성 // Chapter 26 Problem 1 #include // 문제 : 문장의 길이를 반환하는 함수를 만들어주세요.(get_str_len) int get_str_len(char* str) { int len = 0; while (true) { if(str[len] == NULL) { // '\\0' = NULL return len; } len++; } } int main(void) { char name[100] = "Paul"; // name 배열에 Paul 설정 int len = get_str_len(name); printf("len : %d..
[멋쟁이사자처럼 Back-End School 1기] Day 13. 문자열, GC, JAVA, TDD 문자열 💡 문자 : ‘a’ 문자열 : ‘abc’ → 문자 배열(배열도 자료구조이다.) 항상 모든 문장에는 Null 포인터(”\0” == null)가 포함된다. ❗ Null 포인터가 포함되는 이유 - 문장이 종료되었음을 알림. - C언어에서는 달리 방법이 없음. - 변수에는 값을 1개만 넣을 수 있기 때문에(주소값을 1개만 넣을 수 있다.) - Null 포인터가 없으면 계속 출력된다. 공공재 공공재는 재활용된다. 수정이 따로 불가능하다. char* str = "문자열상수"; // 8byte(char*) + 15byte // 공공재의 첫번째 문자를 가리킨다. // 수정이 불가능하다. char str[100] = "문자열변수"; // 100byte // stack부분에 해당한다. // 수정 가능 char* a..
[멋쟁이사자처럼 Back-End School 1기] Day 12. C언어, Java C언어 💡 scanf 함수를 호출 시 두 번째 인자로 변수의 주소 값을 넘기는 이유 ● 본인 생각 - 함수 배개변수가 스택에 새로운 메모리를 차지한다. - scanf의 새로운 변수를 스택으로 쌓는 것이 아닌 미리 지정한 변수의 메모리 주소에 넣어줘야 해당 변수의 값을 변경 하는 것. ● 강사님 답변 - scanf : 개발자 대신 키보드의 입력을 관찰하는 역할 ❗ scanf에 포인터 주소를 넣어주는 이유 ○ 공간을 빌려줄 수 없다. ○ 공간은 주소를 통해서 공유되기만 한다. → 대신맨 역할 : 정확한 주소를 알아야 그 주소의 값을 넣어줄 수 있다. ❗ C언어에서는 Python의 input()을 사용하지 않는 이유 ○ Python : 약타입 언어 ○ C언어 : 강타입 언어 ⇒ 더 세밀하게 조정이 가능하다. ..
[멋쟁이사자처럼 Back-End School 1기] Day 11. C언어, Java C언어 배열 사용 이유 - 관련된 데이터 모음 - 변수 1개로 공간 여러개를 컨트롤 할 수 있다. -- 배열은 스택 안에 해당 배열의 크기만큼 들어갈 수 있는 공간을 차지한다. 자료형의 크기 * 배열의 수 만큼 공간을 차지한다 - int a[10] = 총 40byte(int a : 4byte * 10) 포인터 #include int main(void) { int a9, a8, a7, a6, a5, a4, a3, a2, a1, a0; a0 = -10; a1 = 10; a2 = 100; a3 = 210; a4 = 322210; a5 = 1440; a6 = 1130; a7 = 33210; a8 = 1210; a9 = 33210; int max_number = 0; for (int i = 0; i < 10; i..
[멋쟁이사자처럼 Back-End School 1기] Day 10. Git, GatsBy Git git clone 주소 : 해당 주소 레포지토리의 파일들을 가져온다. = git init → git remote add origin 주소 → git pull origin master git pull origin master -allow-unrelated-histories : git의 pull이 실행되지 않을 경우 사용 → 프로젝트 폴더를 완전히 삭제 후 진행 git push origin master -f : 서버의 오류를 무시하고 push 실행 - 서버의 특정 커밋을 무시하고 로컬에 있는 것으로 진행하고 싶을 경우 사용 git rm —cached “파일명” : 파일명의 add를 삭제 GatsBy localhost:8000/ localhost:8000/test localhost:8000/test-s..
[멋쟁이사자처럼 Back-End School 1기] Day 9. 포인터, Git, GatsBy C언어 기초 포인터 주소로 원래 변수 훼손하기 // 문제 : 원본값을 훼손하는 change 함수를 만들어주세요. #include // 수정가능지역 시작 void change() { int num; // stack으로 변수 num의 메모리 할당 int* p = &num + 11; // num과 x의 변수의 주소 차이는 44이므로 +11 입력 *p = 30; // &num + 11 = &x 이므로 *(&x) = 30; == x = 30; 이다. printf("== change 함수 시작 ==\\n"); printf("&num : %ld\\n", (long)&num); printf("== change 함수 끝 ==\\n"); } // 수정가능지역 끝 int main(void) { int x = 20; // s..