목록self study (99)
happy coding
구조체 배열 선언 구조체 배열을 선언하는 방법은 다른 타입의 배열을 선언하는 방법과 같으며, 구조체 배열에서 각 배열 요소로 접근하는 방법도 일반 배열의 접근 방법과 완전히 같다. 구조체를 가리키는 포인터 struct 구조체이름* 구조체포인터이름;//구조체 변수를 가리키는 구조체 포인터 선언 배열의 경우와는 다르게 구조체의 이름은 구조체를 가리키는 주소가 아니다. 따라서 포인터에 할당할 때에는 반드시 주소 연산자(&)를 사용해야 한다. 구조체 포인터를 이요하여 (접근하고자 하는 구조체의) 멤버에 접근하는 방법은 1. 참조 연산자(*)를 이용하는 방법 2. 화살표 연산자(->)를 이용하는 방법 이 있다. (*구조체포인터).멤버변수이름//참조 연산자를 이용하는 방법 구조체포인터 -> 멤버변수이름//화살표 연..
TCP school 을 보고 정리한 내용입니다. 구조체(structure type) 구조체란 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입을 말한다. 구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있으며, 이때 구조체를 구성하는 변수를 구조체의 멤버(member) 또는 멤버 변수(member variable)라고 한다. 구조체의 정의와 선언 struct 구조체이름 { 멤버변수1의타입 멤버변수1의이름; 멤버변수2의타입 멤버변수2의이름; ... }; struct 구조체이름 구조체변수이름; //구조체 변수로 선언 struct 구조체이름 { 멤버변수1타입 멤버변수1이름; 멤버변수2타입 멤버변수2이름; ... } 구조체변수이름;//구조체 정의와 변수의 선언 ..
TCP school 을 보고 정리한 내용입니다. 기본적인 입출력 스트림(stream) C 프로그램은 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림을 통해 다루는데 이때 스트림은 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미한다. 즉, 운영체제에 의해 생성되는 가상의 연결 고리를 말한다. C언어에서 파일과의 연결을 위한 스트림은 사용자가 직접 생성하고 소멸시켜야 하지만 콘솔 장치에 대한 스트림은 프로그램 실행 할 때 자동으로 생성되며, 프로그램을 종료할 때 자동으로 소멸한다. 기본적으로 제공되는 표준 스트림(standard stream)은 아래와 같다. stdin 표준 입력 스트림 stdout 표준 출력 스트림 stderr 표준 오류 스트림 EOF (End Of File) C언어는 운영..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ncBT5/btrRQi21xBf/gsaV4BOA8wggcbYY8ihZfK/img.png)
TCP school을 보고 정리한 내용입니다. 메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 load되어야 한다. 또한 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다. 메모리 공간은 1. 코드(code)영역 2. 데이터(data) 영역 3. 스택(stack) 영역 4. 힙(heap) 영역 이 있다. 1. 코드 영역 은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부른다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다. 2. 데이터 영역 은 프로그램의 전역 변수와 정적 변수가 저장되는 영역이다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다. 3. 스택 영역 은 함수의 호출과 관계되는 지역 변수와 매개변수가 ..
포인터와 배열의 관계 배열은 배열의 이름은 그 값을 변경할 수 없는 상수라는 점을 제외하면 포인터와 같기 때문에 포인터 상수(constant pointer)라고 부르며, 포인터 상수는 포인터 변수가 가리키고 있는 주소 값을 변경할 수 없는 포인터를 의미하며, 상수 포인터(pointer to constant)란 상수를 가르키는 포인터를 의미한다. int arr[3] = (1,2,3);//배열 선언 int* ptr_arr = arr;//포인터에 배열의 이름을 대입함 위의 코드에서 포인터에 배열의 이름을 대입한 후, 해당 포인터를 배열의 이름처럼 사용하게 되는데, C언어에서는 배열의 이름을 포인터처럼 사용할 수 있을 뿐만 아니라, 포인터를 배열의 이름처럼 사용할 수도 있다. 하지만 배열의 크기를 계산할 때 배..
TCP school을 보고 정리한 내용입니다. 포인터(pointer) 포인터란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부른다. 주소값이란 해당 데이터가 저장된 메모리의 시작 주소를 의미하며, C언어에서는 이러한 주소값을 1바이트 크기의 메모리 공간으로 나누어 표현한다. 포인터 연산자는 1. 주소 연산자(&) 2. 참조 연산자(*) 가 있다. 주소 연산자(&) 주소 연산자는 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다. '&' 기호는 ampersand이며, 번지 연산자라고도 불린다. 참조 연산자(*) 참조 연산자는 포인터의 이름이나 주소 앞에 사용하여, 포인터에 가리키는 주소에 저장된 값을 반환한다. 포인터의 선언 타입* 포인터이름;//선언 타입* 포인터이름 = &변수이름;/..
배열(array) 배열이란 같은 타입의 변수들로 이루어진 유한 집합이다. 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 한다. C언어에서 인덱스는 언제나 0부터 시작하며, 0을 포함한 양의 정수만을 가질 수 있다. 배열은 같은 종류의 데이터를 많이 다뤄야 하는 경우에 사용할 수 있는 가장 기본적인 자료 구조이다. 1차원 배열 1차원 배열은 가장 기본적인 배열이다. 타입 배열이름 [배열길이]; 타입은 배열 요소로 들어가는 변수의 타입을 명시하며, 배열 이름은 배열이 선언된 후에 배열로 접근하기 위해 사용된다. 배열의 길이는 해당 배열이 몇 개의 배열 요소를 가지게 되는지 명시한다. 여기서 배열을 선언만 하고 초기화하지 않으면, 각..