본문 바로가기

C언어 공부10

구조체와 포인터 알기 (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.
C언어 라이브러리와 변수를 알아보자 (2020ver). C언어는 함수기반의 언어이다. 그 의미를 알아보고 변수의 큰 종류인 전역변수와 지역변수를 알아보는 글이다. c 언어의 기본은 함수 이다 이건 파이썬류(OOP를 말한것임)와 다르게 구분되는 큰 틀중 하나 이다 즉 함수기반 과 객체지향(oop) 기준의 프로그래밍 언어의 2개의 큰 틀중에 c언어는 함수 기반의 프로그래밍 언어라는 것이다. 함수의 집합을 라이브라리 (library)라 한다 (파이썬은 모듈이라 함) 좀더 구체적으로는 printf 나 if, for 등 미리 제공되는 함수를 표준함수라 각각 일컫고 표준함수들의 모임을 표준 라이브러리 라 한다. 이러한 라이브러리들은 자신이 자주 사용하는 것들을 자신이 만들어서 함수로 만들어놓고 나중에 따로 불러오는 것을 목적으로 만든다고 생각한다. 이러한 함수는 메인함.. 2020. 7. 30.