본문 바로가기

C C++/C언어 기초30

C언어 - 포인터와 함수 관계의 모든 것 함수는 인자를 가질 수 있고, 반환 값이 있도록 정의할 수 있습니다. 지금까지는 포인터를 인자로 가지는 경우를 다룬 적이 없고, 포인터를 반환 값으로 하는 함수를 다룬 적은 없습니다. 이번에는 포인터와 함수 관계를 알아보도록 하겠습니다. 함수의 인자 전달하기 함수의 인자는 함수 내 매개변수에 값을 전달하는 역할을 합니다. 여기서 중요한 부분은 '매개변수'에 전달한다는 점입니다. 함수 안의 매개 변수는 이 값을 전달 받고, 함수 내에서 연산이 되기도 합니다. #include void showinfo(int b) { b+=1; printf("%d\n", b); } int main(){ int a = 1; showinfo(a); printf("%d", a); return 0; } 출력: 2 1 예를 들어 함수.. 2022. 5. 3.
C언어 - 포인터 배열의 이해 : 포인터 변수로 이뤄진 배열 앞 서 우리는 포인터와 배열의 관계에 대해 살펴 보았습니다. 이번에는 주소 값의 저장이 가능한 배열로 '포인터 배열'을 살펴보도록 하겠습니다. 포인터 배열이란 포인터 배열은 주소 값이 저장 가능한 배열이며 포인터 변수로 이루어져 있습니다. 선언 방식은 배열의 선언 방식에서 * 연산자를 추가한 것이라고 보면 됩니다. int와 double의 포인터 배열 선언은 아래와 같다. int* arr1[20]; double* arr2[20]; 예시를 살펴보도록 하자. #include int main(void) { int num1 = 10, num2 = 20, num3 = 30; int* arr[3]={&num1, &num2, &num3}; printf("%d \n", *arr[0]); printf("%d \n", *a.. 2022. 5. 2.
C언어 - 포인터와 배열 이해의 모든 것 (배열 이름, 포인터로 배열 가리키기, 상수 형태 문자열의 포인터) 앞 서 살펴 본 것과 같이 포인터는 다른 변수의 주소를 저장하는 것을 의미하였습니다. 그렇다면 배열과의 관계는 어떨까요? 배열의 주소도 마찬가지로 포인터를 통해 저장할 수 있습니다. 포인터와 배열 우리는 앞 서 특정 변수의 주소를 포인터 변수에 저장하였고, 이를 포인터 변수를 통해 값에 접근하여 사용하였습니다. 요약하면 아래와 같습니다. - 배열을 포인터 변수에 저장할 수 있는가? YES - 배열 요소별로 포인터 변수에 저장할 수 있는가? YES - 포인터를 통해 배열에 접근할 수 있는가? YES 즉, 배열이라는 형태만 다를 뿐 기본적인 내용은 일반 변수와 크게 다르지 않습니다. 첫 번째 알아야할 부분은 '배열의 이름'이 포인터라는 점입니다. 주소값입니다. 또한 '상수 형태의 포인터'로, 주소값 변경이 .. 2022. 5. 2.
C언어 포인터 이해의 시작 (포인터 정의, 포인터 선언, 포인터 저장 방식, 포인터 자료형, & 연산자, *연산자) C언어 포인터는 '다른 변수의 메모리 주소 값'을 저장하는 변수를 의미합니다. C언어가 Low 레벨 언어라고 불리는 대표적인 이유가 포인터를 이용 해 메모리에 직접 접근이 가능하기 때문입니다. 포인터는 무엇이고 어떻게 쓰일 수 있는지에 대해 알아보도록 하겠습니다. 포인터 정의 앞 서 말씀드린 바와 같이 C언어 포인터는 '메모리 주소 값'을 저장하는 변수입니다. 이것이 어떤 의미일까요? - 변수는 메모리 상에 존재합니다. - 변수는 메모리 상에서 특정 주소값을 가지고 있습니다. 우리가 흔히 선언하는 문자 또는 정수형도 주소 값을 가지고 있습니다. 각 IDE에서 아래를 실행 해 보시기 바랍니다. #include #pragma warning(disable:4996) int main(void) { char ch.. 2022. 5. 1.