본문 바로가기

관/솔직한 c 언어 공부18

알아두면 좋은 실용적 으로 사용되는 C언어 코드 (2020ver). 오늘은 실질적으로 사용될 코드를 포스팅 한다. 파일이 저장되는 방식, 입력하는 함수를 알아보고, 텍스트 파일을 읽고 복사하는 내용에 대한 코드를 알아본다. 2가지 종류가 존재한다. 1. 텍스트 파일(text file) : 사람이 읽는 텍스트가 들어 있는 파일이다 이 메모장 같은 것이다. 텍스트 파일에는 문자들이 들어있고 이는 아스키 코드를 이요하여 표현 된다 텍스트 파일은 연속적인 줄들로 구성되고 각 줄은 줄의 끝을 알리는 줄바꿈 문자로 종료된다. 2. 이진 파일(bianry file) : 사람이 아닌 컴퓨터가 읽을 수 있는 파일로 0,1로 구성되어 있는 파일이다 줄이라는 개념이 없기에 줄의 끝을 표시할 필요가 없으며 널이나 CR,LF 같은 문자들도 단순히 데이터로 취급한다. 특정한 프로그램에 의해서만 .. 2020. 8. 8.
구조체와 포인터 알기 (2020ver). 이번에는 C에서 구조체를 포인터와 사용하는 방법을 소개한다. 길게 써놓았으니 필요한 내용은 대부분 들어있다고 생각한다! 자료형은 정수, 문자 여기서 추가적으로 배열(문자열), 포인터(주소), 구조체(연관된 데이터 모으기, 숫자든 문자든 상관없이) 가 있다. 구조체 멤버접근 에는 멤버 연산자 (.) 를 사용한다 구조체 상에서 선언된 마우스의 x축 y축 등은 멤버라 한다. 구조체와 객체지향(oop)에서의 클래스의 차이점 이라면 구조체는 변수까지만 저장이 가능하다. 즉 함수는 저장이 불가능 한데 클래스 에서는 함수까지 저장이 가능하다는 것이 핵심이다. 구조체의 멤버가 배열일때 s.name="이름"; 이런 방식으로 하면 오류가 난다. 배열은 주소값을 가지기 때문이다. strcpy(s.name,"이름"); 이런 .. 2020. 8. 6.
C언어 문자열 처리를 위한 함수들 정리(2020ver). 이번 포스팅에서는 C언어와 관련된 3가지 주제를 다룬다. 문자열을 저장하는 방법과 문자열 처리를 위한 여러 함수들을 소개하고, 구조체가 무엇인지 어떤 방식으로 선언하는지 간단한 내용을 알아본다! 문자열은 배열을 통하여 선언하여 사용할 수 있다고 알고 있다. 이를 포인터와 비교하면 크게 다르지 않음을 알 수 있다. 포인터와 배열의 유일한 차이점은 주소값의 변경은 포인터는 가능하고 배열은 불가능하다 뿐이다. 때문에 배열을 상수형태의 포인터 즉 포인터 상수라 부른다. 따라서 문자열을 여러개 저장하는 방법으로 배열, 2차원 배열을 사용하는 방식이 있다. 또 포인터를 이용하는 방식인 포인터 배열을 이용하여 문자열을 저장할 수 있다. 문자열 입출력 함수이다. int getchar(void) 하나의 문자를 읽어서 반.. 2020. 8. 4.
C언어 포인터변수란? (2020ver). 이번엔 C언어의 포인터변수, call by value와 call by reference와 call by pointer를 알아본다. 포인터가 어렵다고 하지만 다 엄살이다. 생각보다 간단하니 천천히 읽어보자! 포인터 변수 c언어가 컴퓨터친화적인 특성을 지닌 이유이다 포인터를 통해 메모리에 직접 접근이 가능하다. 변수와 메모리를 살핀다. 우선 메모리 블록이란 1바이트를 하나의 블록으로 정해놓고 각각 주소값을 지닌다. 문자변수는 1바이트 즉 블록 하나를 숫자변수는 4바이트 즉 블록 4개에 결쳐서 메모리에 저장을 한다. 이때 변수는 블록의 시작하는 부분에 할당되어 있다고 약속한다. 이때 메모리의 주소값 또한 정수이며 이것도 변수에 저장이 가능하며 이러한 것을 위해 마련된 변수를 포인터 변수라고 한다. 즉 포인터 .. 2020. 7. 31.