본문 바로가기

TIL75

구조체(2021-01-25~2021-01-29) (2021-01-27 생각보다 수강에 시간이 정말 많이 걸리고 있다.... 예상했던것보다 어려운 느낌이다. 아무래도 이번주 내내 구조체 챕터만 들을거 같은 느낌이다.) 4.1 구조체가 필요한 이유 자료형이 서로 다른것들을 모아놓는데 사용가능한 c의 문법이 구조체다. 서로 자료형이 다르더라도 하나로 묶어서 새로운 자료형처럼 사용할수 있게 도와주는게 구조체임. 위의 그림에서 p1, p2, p3가 Struct Patient p1, p2, p3;로 선언되면 구조체의 형에 맞추어 메모리에 자리가 생기는것 14.2 구조체의 기본적인 사용법 기본적인 구조체 선언방법은 이하와 같다. 구조체 변수를 선언하는 방법은 이하와 같다. 그리고 구조체의 특정 자료에 접근할때는 dot(.) membership opeator 를 사.. 2021. 1. 25.
파일입출력의 작동원리 (2021-01-22~2021-01-23) 13.1 파일 입출력의 작동 원리 C언어로 프로그램을 작성하고 실행하면 운영체제와의 사이에 스트림이 3개(stdout, stderr, stdin)가 열린다. printf같이 화면에 출력하는 함수는 내부적으로 stdout스트림을 사용 scanf같이 입력을 받는 함수는 stdin사용 stderr은 프로그래머가 에러를 보내야 할때 사용 어떨때는 파일에 데이터를 저장하거나 불러오고 싶을때가 있음. C에서는 파일입출력을 일종의 스트림으로 다룸. C언어로 작성된 프로그램이 파일과 상호작용할때는 2가지 모드를 사용가능(텍스트 파일 io, 바이너리 파일io) 2가지를 혼합해서 사용하기도 한다. 13.2 텍스트 파일 입출력 예제 C에서 텍스트 파일을 입출력하는 것은 이하와 같다. 13.3 텍스트 인코딩과 코드 페이지 텍.. 2021. 1. 22.
Storage Classes, Linkage, and Memory Management (2021-01-21~2021-01-22) 12.1 메모리 레이아웃 훑어보기 C 언어로 작성한 프로그램이 메모리에서 어떻게 사용되는지에 대한 내용이다. 주의 할점은 초기화 되지않은 전역/정적변수는 BSS에 저장되고 그공간에 있는것들은 프로그램이 시작 될때 0으로 초기화됨. 오히려 한꺼번에 모아서 0으로 초기화 해주기위해 BSS에저장된다고 생각할것 12.2 객체와 식별자, lvalue와 rvalue 12.3 변수의 영역과 연결 상태, 객체의 지속 기간 file 스코프를 지닌 전역 변수 의 사용은 이하와 같다. file 스코프에 있는변수는 프로그램 전체에서 사용할수 있는것처럼 사용이 가능해서 전역변수라고 부른다. file 스코프에 있는변수를 static과 함께 선언하면 해당 파일 내부에서만 쓸수있게 범위가 아래사진처럼 제한된다. Duration이란 .. 2021. 1. 21.
문자열 함수들 (2021-01-19~2021-01-21) 11.1 문자열을 정의하는 방법들 지난강의에서 문자열의 경우 컴파일러가 자동으로 마지막에 널캐릭터를 추가된다는 내용이 나왔었음. puts() 함수는 문자열을 출력을 해준다. 그리고 자동으로 \n을 붙여준다. 문자열도 배열처럼 메모리에 저장이 되어있어서 함수에게 전달할때는 문자열의 첫번째 글자 주소를 포인터로 넘겨줌. puts 함수를 사용하여 문자열을 출력하는 과정은 다음과 같다. 문자열의 포인터는 배열처럼 첫번째 글자의 주소만 전달 해줌. 위의 예시에서 포인터로 선언한 문자열을 20번째줄에서 배열에서 하듯이 원소를 바꾸려하면 에러가 발생한다. 예시사진에는 ptr이 const char*로 선언 됬으니까 비주얼 스튜디오가 바로 잡아주지만 const가 없이 선언될경우 컴파일이 되고 런타임에러 발생한다. 이유는.. 2021. 1. 19.
배열과 포인터(2021-01-15 ~ 2021-01-17) - (2021-01-17) 현재 chapter 10 마지막까지 들었는데 너무 이해가 가지않고 헷갈리는 부분이 많다(13~16강은 정리할 엄두가 안난다....). 포인터가 어렵다는 말은 들었는데 정말 어렵구나 싶음. 수강진도를 더 나가기전 다음주 다시 들으며 한번더 정리하려 해보자. - (2021-01-19) 9강부터 다시 복습을 했는데 어느정도 정리가 된것 같다. 주말아니면 내일 한번더 강의를 전체를 다시 보면 어느정도 더 이해 될 수 있을거 같다. - (2021-01-27) 배열의 이름에는 첫번째 원소의 주소가 담겨있다는 사실을 꼭 기억하자. www.inflearn.com/questions/138442 10.1 배열과 메모리 배열의 사전적 의미 -> 동일한것이 나열된것 C의 배열의 선언방법과 for에서.. 2021. 1. 15.
함수 (2021-01-13 ~ 2021-01-14) 9.1 함수가 필요할 때 문자열을 출력하는 방법을 기억하지 못해 문자열 입출력을 잘못했다. 한번 더 lemonade-my-neck-was-drippin.tistory.com/6 문자열과 형식 맞춘 입출력 (2021-01-05) 4.1 문자열 출력하기 "char 변수명" -> 글자 1개만 저장가능 뒤에 대괄호[]를 써서 저장공간을 더 확보 가능 (실제 변수자체가 더 큰 용량을 갖는 변수자체가 되는 것 아니라 추가로 지정한 크기만큼 lemonade-my-neck-was-drippin.tistory.com 9.2 함수의 프로토타입 컴파일과 링킹이 분리되어있다는 점에 주의 함수의 프로토타입만 선언해도 컴파일은 가능하지만 링킹(실제로 실행 파일을 만드는과정)에서 문제가 발생한다. Visual studio에서는 함.. 2021. 1. 13.