🖥️ CS, 개발상식 16

[자료구조/C] 포인터

포인터란? 다른 변수의 메모리 주소(바이트 단위)를 가지고 있는 변수 정수형, 실수형, 문자형 등 여러 가지 자료형으로 선언될 수 있다. 주소연산자 : & 간접 (참조) 연산자 : * ex) int *p; // 정수형 포인터 선언 int a = 200; //정수형 변수 선언 p = &a; //포인터 p는 a의 메모리 주소를 가리킨다. 즉, p는 변수 a를 가리킨다. p의 값은? : 변수 a의 주소값 *p의 값은? : 변수 a가 실제로 가지고 있는 값(200) 위 코드에 *p = 20을 마지막에 추가하면 a의 값은? : 20으로 바뀐다. 포인터 p는 변수 a를 가리키고 있어서 값을 복사하는 것이 아니다. 따라서 *p의 값을 변경하면 a의 값도 같이 바뀐다. 널 포인터 어떤 객체도 가리키지 않는 포인터이다...

[자료구조/C] 구조체

구조체란? 타입이 다른 데이터를 묶는 방법 구조체 정의 - 구조체 명 struct student { int id; char name[20]; int midterm; int final; }; student : 구조체와 구조체를 구별해주는 식별자. 구조체 태그 라고도 함 id, miterm, name, final : 구조체 멤버 구조체 변수 선언 : struct student aStudent; -> 이렇게 선언해야만 메모리가 잡힘 구조체 변수 선언과 초기화 동시에 : struct student aStudent = {20191111, "율짱", 100, 90}; 구조체 정의 - 구조체 타입 typedef struct student{ int id; char name[20]; int midterm; int fin..

[자료구조/C] 배열

배열이란? 동일한 타입의 데이터를 한 번에 여러개 만들 때 사용하는 자료형 배열을 사용하면 연속적인 메모리 공간이 할당되고, 배열 인덱스가 주어지기 때문에 인덱스를 사용하여 쉽게 접근이 가능하다. C언어에서의 1차원 배열 선언 : 자료형 배열이름[배열 요소의 개수] // int list[6], char string[7], Student sList[6]; 값 설정 : 배열이름[인덱스] = 값 // list[0] = 100; 값 반환 : 값을 저장할 변수 = 배열이름[인덱스] //Student s1 = sList[0]; 인덱스는 0부터 시작한다. 메모리 주소는 배열의 첫번째 요소가 기본 주소가 되고, 그 다음 요소부터 기본주소+n*sizeof(자료형)이 된다. ex: int list[6]에서 list[0]의..

[자료구조/C] 자료구조와 알고리즘, 추상자료형(ADT, abstract data type)

프로그램 = 자료구조 + 알고리즘 자료구조(data structure) 프로그램에서 자료를 정리하여 보관하는 구조(배열, 스택, 큐...) 알고리즘(algorithm) 컴퓨터로 문제를 해결하기 위한 단계적인 절차 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 장치가 이해할 수 있는 언어로 기술한 것 특정한 일을 수행하는 명령어들의 집합 알고리즘의 조건 입력 : 0개 이상의 입력이 존재해야 한다 출력 : 1개 이상의 출력이 존재해야 한다 명백성 : 각 명령어의 의미는 모호하지 않고 명확해야 한다 유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 한다 유효성 : 각 명령어들은 실행 가능한(프로그래밍 언어로 바꿀수 있는) 연산이어야 한다. 자료형 : 데이터 + 데이터 간에 가능한 연산 추상 자료형..

[자료구조] 자료구조와 알고리즘

"프로그램 = 자료구조 + 알고리즘" 자료구조란? 컴퓨터 프로그램에서 자료들을 정리하여 보관하는 구조 예시 자료구조 물건을 쌓아서 보관하는 것 스택 마트 계산대의 대기 줄 큐 버킷 리스트 리스트 영어사전 사전 지도 그래프 컴퓨터의 디렉토리 구조 트리 알고리즘이란? 컴퓨터 프로그램에서 문제를 해결하는 단계적인 절차 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 정밀하게 장치가 이해할 수 있는 언어로 기술한 것 알고리즘이 되기 위한 조건 1. 입력 : 0개 이상의 입력 2. 출력 : 1개 이상의 출력 3. 명백성 : 각 명령어의 의미는 모호하지않고 명확해야한다. 4. 유한성 : 한정된 수의 단계 후에는 프로그램이 반드시 종료되어야 한다. 5. 유효성 : 각 명령어들은 글을 통해서 혹은 컴퓨터로 실행..

반응형