728x90

포인터 5

[ C++ ] 반환 자료형의 세가지 형태, 매개변수의 세가지 형태

[ C++ ] 반환 자료형의 세 가지 형태, 매개변수의 세 가지 형태 [매개변수의 세 형태] 값에 의한 전달 > 인수에 영향을 주지 못함 주소에 의한 전달 (포인터) 레퍼런스에 의한 전달 (레퍼런스) 한계 : 함수 호출 문을 보고 값에 의한 전달인지 레퍼런스에 의한 전달인지 모른다. const 레퍼런스를 사용하면 실 인수 변경이 불가능하다. 매개변수를 통한 변경을 방지할 때 사용할 수 있다. [반환 자료형의 세 형태] 1. 값에 의한 반환 (복사 반환) main() int x; int y; y = increment(x); int increment(int n){ n = n + 1; return n;} 2-1. 주소(*)에 의한 반환 (포인터 매개변수, 주소 값 반환) main() int x; int* y;..

C++ Programming 2021.11.06

[ C++ ] 네임스페이스 :: namespace 포인터 Pointer

[ C++ ] 네임스페이스 :: namespace 포인터 Pointer 네임스페이스 네임스페이스는 특정 공간에 이름을 붙여 주기 위한 문법 요소이다.. ::을 사용하고 이름 공간 중첩 가능하다. 문자열을 매개변수에 전달하려고 할 때 const char* str을 사용한다. const 레퍼런스 const 레퍼런스는 상수 기능을 한다. 포인터로 값을 수정하려고 해도 수정 불가능하다. 문자열은 기본적으로 포인터를 사용해 간접 참조 활용한다. 모자란 인수 대신 매개변수의 기본값이 사용된다. 기본값 설정은 함수 선언 부분(맨 앞)에(맨앞) 명시한다. void function(int n = 0); 따라서 매개변수의 기본값은 오른쪽에 치우쳐 기술되어야 함. JAVA에서는 매개변수의 기본값을 설정할 수 없다. C의 메..

C++ Programming 2021.11.05

[ 자료구조 ] 연결리스트를 만들기 위한 구조체 선언과 typedef 활용

[ 자료구조 ] 연결 리스트를 만들기 위한 구조체 선언과 typedef 활용 연결 리스트를 만들기 위해서는 자기 참조 구조체가 필요하다. 데이터를 저장할 필드가 있어야 하고, 다른 데이터 주소를 포인터로 가리키는 필드가 있어야 한다. 또한 이렇게 만들어진 구조체를 typedef 선언해 더 간단하게 표현할 수 있다. 정적 기억 장소에 데이터 저장 (활용도 낮음) struct node{ int data; struct node *link; } typedef struct node list_node; typedef list_node * list_ptr; list_node item1, item2, item3; item1.data = 10; item2.data = 20; item3.data = 30; item1.li..

CS/자료구조 2021.10.27

[ 자료구조 ] 링크드 리스트 Linked List 연결 리스트 동적 기억 장소에서 포인터 사용

[ 자료구조 ] 링크드 리스트 Linked List 연결 리스트 동적 기억 장소에서 포인터 사용 포인터가 가리키는 곳의 타입은 주소로 정수형이지만, 연결 리스트(링크드 리스트)가 가지는 포인터 타입은 가리키는 곳의 타입을 고려해야 한다. sizeof 연산자 sizeof 연산자는 몇 바이트를 차지하는지 알려주는 연산자이다. sizeof(int) = 4 sizeof(float) = 4 sizeof(char) = 1 링크드 리스트 정적 기억 장소에서 포인터 사용 (활용도 낮음) #include #include int main(){ int *pi; float *pf; *pi = 1024; *pf = (float) 3.14; //------------------------compile printf("an inte..

CS/자료구조 2021.10.26

[ 자료구조 ] C언어 포인터 / 구조체 / 자기 참조 구조체 / 희소 행렬

[ 자료구조 ] C언어 포인터 / 구조체 / 자기 참조 구조체 / 희소 행렬 배열 배열은 기억 장소에서 연속된 위치를 차지한다. sizeof() 함수는 데이터의 길이를 byte로 반환하는 함수이다. C 언어에서 sizeof(int)의 값은 2 byte이지만 시스템에 따라서 4 byte인 경우도 있다. list [0]은 기억 장소의 주소이기도 하다. 인덱스 값을 바꿀 때마다 n*sizeof(int)를 n*sizeof(int) 하면 좋다. 포인터 타입은 데이터가 기억 장소의 주소를 저장하는 타입이다. 사람이 사는 모든 집에 주소가 있고 컴퓨터의 기억 장소도 주소가 있다. 주소를 기억하는 변수가 포인터 변수이다. 배열 변수는 주소 값으로 처리한다. 그 이유는 배열의 내용 전체를 이동할 경우보다 주소 값을 알려..

CS/자료구조 2021.09.20
728x90