728x90
배열의 정의
동일한 자료형을 갖는 자료의 리스트
각 요소는 하나의 변수로 취급 배열 명과 첨자로 구분 Ex) array[0] array[1]
배열의 선언형태
첨자의 개수는 배열 전체의 구성요소의 개수 의미
- 1차원 배열
- 2차원 배열
- 3차원 배열
char 형 배열 (문자열 배열)
배열의 형이 문자열인 배열
배열명[문자열 길이 + 1] 의 개수를 가진다.
*** 포인터(Pointer)**
변수의 일종이다.
특정 데이터가 저장된 기억장소의 주소 값을 가지고 있다.
일반적인 변수의 기억공간 표현
- 변수선언에 의해 기억공간이 할당
- 할당된 기억공간에 변수에 대입된 데이터가 저장
- 할당된 기억공간은 주소가 부여된다.
포인터의 개념
주소를 이용하여 변수와 같은 동일한 작업이 가능
포인터 변수 - 포인터 값을 다루는 변수 ( 변수의 주소값을 가질 수 있다.)
#include <stdio.h>
int main() {
int num = 5;
int* ptr = # // ptr 변수는 num 변수의 메모리 주소를 가리킵니다.
printf("num 변수의 값: %d\\n", num);
printf("num 변수의 메모리 주소: %p\\n", &num);
printf("ptr 변수의 값: %p\\n", ptr);
printf("ptr 변수가 가리키는 값: %d\\n", *ptr);
*ptr = 10; // 포인터를 통해 num 변수의 값을 변경합니다.
printf("ptr 변수를 통해 값을 업데이트한 후의 num 변수의 값: %d\\n", num);
return 0;
}
char 포인터
문자열 처리 포인터
char *cp = "compouter"; // 초기화
이중포인터 (다중 리스트 이상에서 주로 사용)
자료가 있는곳을 이중으로 가리키는 포인터
자료가 아닌 주소 값이 들어가 있고 그 주소에 자료가 들어가 있다.
int **p; //이중 포인터 선언
p : 기억공간 주소
*p : 주소 p에 수록 되어 있는 값. 이 값이 주소로 사용 됨.
**p : 주소가 *p인 곳에 수록되어 있는 값. 즉 int형의 자료
#include <stdio.h>
void get_values(int** ptr) {
**ptr = 10;
*(*ptr + 1) = 20;
}
int main() {
int num1 = 5, num2 = 15;
int *ptr1 = &num1, *ptr2 = &num2;
int **ptr_ptr = &ptr1; // 이중 포인터 ptr_ptr은 포인터 ptr1의 주소를 가리킵니다.
printf("Before calling function:\\n");
printf("num1: %d, num2: %d\\n", num1, num2);
get_values(ptr_ptr);
printf("After calling function:\\n");
printf("num1: %d, num2: %d\\n", num1, num2);
return 0;
}
728x90
'KNOU > 요약정리' 카테고리의 다른 글
[C 프로그래밍] 파일처리함수 (0) | 2023.05.10 |
---|---|
[C 프로그래밍] 구조체와 공용체 (0) | 2023.05.10 |
[C 프로그래밍] 함수 (0) | 2023.05.10 |
[C 프로그래밍] 제어문(선택, 반복, 기타) (0) | 2023.05.10 |
[C 프로그래밍] 입출력 함수와 연산자 (0) | 2023.05.10 |
댓글