728x90
배열은 포인터 개념으로 사용할 수 있다
int student[5] = {4,3,3,1,0}
#include <stdio.h>
int main() {
int arr[3] = { 0,1,2 };
printf("배열의 이름: [%p]\n", arr);
printf("배열의 이름: [%p]\n", &arr);
printf("첫 번째 요소: [%p]\n", &arr[0]);
printf("두 번째 요소: [%p]\n", &arr[1]);
printf("세 번째 요소: [%p]\n", &arr[2]);
printf("-----------------------------\n");
printf("배열의 이름: [%p]\n", arr);
printf("첫 번째 요소: [%d]\n", arr[0]);
printf("두 번째 요소: [%d]\n", arr[1]);
printf("세 번째 요소: [%d]\n", arr[2]);
printf("-----------------------------\n");
printf("배열의 이름: [%d]\n", *arr);
printf("첫 번째 요소: [%d]\n", *(arr + 0));
printf("두 번째 요소: [%d]\n", *(arr + 1));
printf("세 번째 요소: [%d]\n", *(arr + 2));
}
1. arr이름만 적어주면 배열의 첫번째 위치를 가르킨다
2. arr[n]은 *(arr + n) 으로 나타낼 수 있다 (둘이 같은거임)
3. arr은 포인트라 포인트 선언 안하고 *붙여서 바로 사용가능하다
4. arr이나 &arr[0] 이나 &arr이나 나 똑같은거다
#include <stdio.h>
int main() {
int arr1[3] = { 1,2,3 };
double arr2[3] = { 1.1, 2.2 ,3.3 };
printf("*arr1 배열의 이름: [%d]\n", *arr1);
printf("*arr2 배열의 이름: [%g]\n", *arr2);
*arr1 += 100;
*arr2 += 120.5;
printf("*arr1 배열의 첫 번째 요소: [%d]\n", arr1[0]);
printf("*arr2 배열의 두 번째 요소: [%g]\n", arr2[0]);
}
arr1 배열에 값을 더해서 집어넣는 모습이다 (첫번째 배열에 값은 넣었다)
728x90
'언어는 과-학인가요? > c언어' 카테고리의 다른 글
(c언어) 함수 호출 - 변수 값 위치 바꾸기 swap (0) | 2020.09.12 |
---|---|
(c언어) 배열과 포인터(array and pointer) (0) | 2020.09.12 |
(c언어) 포인터(pointer)뜻 (0) | 2020.09.12 |
(c언어) 배열을 만들어보자 (array) (0) | 2020.09.05 |
(c언어) 아스키 코드 (0) | 2020.09.05 |