포인터 3

[C언어] 포인터 배열, 헷갈리는 부분들

포인터 배열 int* arrPtr[i] -> int형 포인터 변수 i개로 이뤄진 1차원 배열 총 i개의 주소값 저장가능 1. int arr[]={1, 2, 3, 4, 5}; int* p = arr; // int* p = &arr[0]; arr 2. 배열 이름 관점에서 arr[i]와 *(arr+i)가 동일 arr[i]와 *(arr+i)는 동일한 문장 -arr[i]는 배열의 이름을 이용할때 사용 -*(arr+i)는 포인터를 이용할때 사용 3.매개변수 선언을 포인터 관점에서 void func(int* arr, int len){ ...// 여기서 int* arr은 int arr[]로 대체가능 } 4.int arr[] 유형의 선언은 매개변수 선언에서만 사용이 가능 5.Call-By-Value & Call-By-R..

[C언어] dptr을 이용해 *ptr1과 *ptr2 관계 서로 바꾸기

이중포인터를 이용해 포인터 관계 바꾸기 ▷ 정수형 변수 n1과n2에값을 입력 받은 후, 각각 n1과n2의주소를 저 장하는 포인터 변수 ptr1, ptr2를선언 ▷ ptr1의주소를 저장하는 이중 포인터 dptr을선언 ▷ dptr만을 이용하여 관계바꾸기 ex)n1=10, n2=20일때 결과물은 *ptr1=20, *ptr2=10, **dptr=10이 나오게 관계를 바꿔줘야함 int main(void) { int n1, n2; int* ptr1, * ptr2; printf("Input n1, n2 : "); scanf_s("%d %d", &n1, &n2); ptr1 = &n1; ptr2 = &n2; int** dptr = &ptr1; *dptr = &n2; dptr = &ptr2; *dptr = &n1; pri..

[C언어] 포인터 개념

메모리의 주소체계 하나의 주소 값은 1바이트 단위로 할당. 변수와 메모리 char형 : 1byte short형 : 2byte int형 : 4byte float형 : 4byte double형 : 8byte 포인터 : 주소를 가지고 있는 변수 -포인터 변수와 함께 사용하는 연산자 &: 변수의 주소값을 나타냄(주소 값 가져올때 제일 첫번째 바이트의 주소값을 가져옴) *: 포인터가 가리키는 메모리 참조 포인터 기본규칙 ▷포인터 변수 선언할때 변수의 자료형과 같아야함 ▷포인터는 가리키는 대상의 크기와 상관없이 4바이트로 선언됨. TYPE val; TYPE * ptr; ptr = &val;//변수의 주소 저장 (TYPE * ptr = &val;//선언 동시에 초기화 가능) *연산자(간접 참조 연산자) int mai..