매개변수로 인수 전달하기

1. 값에 의한 전달 ( call by value )

외부로 영향 x , 새롭게 값 정의 복사되어 초기화 됨. 


2. 참조에 의한 전달 ( call by reference )

주소가 모두 같음, 효율성이 높아서 사용성 높음.


3. 주소에 의한 전달 ( call by address )

주소값 같음. 메모리에 저장 된 값 같음. 
포인터 변수도 변수이기 때문에  포인터의 주소는 다르게 나옴. 

배열은 포인터 

배열 : 배열에 담긴 첫번재 값의 주소를 담음.

'programming > c++' 카테고리의 다른 글

6.7 포인터 기본  (0) 2020.01.26
6.5 정적 다차원 배열  (0) 2019.05.06
*6.4 배열과 선택 정렬 selection sort (복습)  (0) 2019.05.06
6.3 배열과 반복문  (0) 2019.05.06
6.1 배열 기초적인 사용법  (0) 2019.05.06
Posted by 도이(doi)
,

포인터

메모리 주소를 저장하는 변수 


포인터의 위험성

쓰레기 주소값이 들어간 경우 dereferencing을 시도하게 되면 
엉뚱한 곳에서 데이터를 찾기 때문에 오류가 발생한다. 

*de referencing : 주소 값을 찍어서 값을 가져오는 것 

이런 문제를 방지하기 위해서

Null Pointer를 많이 사용한다. 


array변수는 배열이 아니라 Pointer다.

주소 값을 찍어보면 array는 첫번째 요소의 주소 값을 가져온다. 

array[ ]가 parameter로 사용하게 될 경우 
내부적으로 포인터가 된다. 

함수 밖에서 포인터 값을 바꿔도  다른 함수에서 값이 적용된다. 

Posted by 도이(doi)
,

정적 다차원 배열 

1차원적인 메모리 구조를 2차원으로 사용할 수 있게 해주는 것 


2차원 배열 rows & columns 

<result>


Posted by 도이(doi)
,

#include <iostream>


using namespace std;


void printArray(const int array[],const int length) // const 변수 바꿀 수 x

{

for (int index = 0; index < length; ++index)

cout << array[index] << " ";

cout << endl;

}


int main()

{

const int length = 5;

int array[length] = { 3,5,2,1,4, };


printArray(array, length);


for (int startIndex = 0; startIndex < length - 1; ++startIndex)

{

int smallestIndex = startIndex;


for (int currentIndex = startIndex + 1; currentIndex < length; ++currentIndex)

{

if (array[smallestIndex] > array[currentIndex])

{

smallestIndex = currentIndex;

}

}

//swap to values in the array

{

int temp = array[smallestIndex];

array[smallestIndex] = array[startIndex];

array[startIndex] = temp;

}

}


return 0;

}

*어려움 ㅜㅜ

debug 찍어서 바뀌는거 보고 복습하기 

'programming > c++' 카테고리의 다른 글

6.7 포인터 기본  (0) 2020.01.26
6.5 정적 다차원 배열  (0) 2019.05.06
6.3 배열과 반복문  (0) 2019.05.06
6.1 배열 기초적인 사용법  (0) 2019.05.06
5.9 난수 만들기  (0) 2019.05.04
Posted by 도이(doi)
,