728x90
반응형
안녕하세요. 스마트 팩토리입니다.
c 언어[027] 배열(array)과 포인터( pointer)에 대해 알아보겠습니다.
1. 배열의 인덱스와 주소값,배열값 출력
가. 배열의 주소와 배열값 출력
배열의 주소= 배열 인덱스[0]번 값과 같다.
배열값은 for문을 이용해서 출력한다.
(단,문자열은 그냥 출력)
배열 인덱스0번부터 순차적으로 주소값이 정해진다.(int 형은 4바이트)
숫자 배열의 경우
arr을 출력하면 배열의 주소값이 나오고 이는 인덱스 0번의 주소값과 같습니다 .
%x,%p는 주소값을 16진수로 표현해 줍니다. %x는 값만 표기하는 반면 %p는 자료형의 크기만큼 전부 표기해 줍니다.
for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
printf("arr[%d]는 %d\n", i, arr[i]);
반복문을 통해서 자료의 값을 출력할 수 있습니다.
#include<stdio.h>
int main() {
int arr[5] = { 10,20,30,40,50 };
printf("arr 주소 값 : %d \n", arr);
printf("arr 값 : %p \n", arr);
printf("arr 주소 값 : %d \n", &arr[0]);
printf("arr 값 : %x \n", arr);
for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
printf("arr[%d]는 %d\n", i, arr[i]);
}
}
나. arr, arr+1 값출력
printf("arr 값 : %d\n", arr);
printf("arr+1 값 : %d\n", arr+1);
arr 과 arr1+1의 값을 보면 알 수 있듯이 배열 요소의 자료형의 크기(4바이트) 만큼 증가하는 것을 볼 수 있습니다.
배열의 인덱스 0번과 인덱스 1번의 관계로 arr과 arr+1 이 됩니다.
#include<stdio.h>
int main() {
int arr[5] = { 10,20,30,40,50 };
printf("arr 값 : %d\n", arr);
printf("arr+1 값 : %d\n", arr+1);
for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
printf("arr[%d]는 %d\n", i, &arr[i]);
printf("arr[%d]는 %d\n", i, arr+i);
}
}
다. 배열과 포인터
배열명에 1씩 증가하면 배열의 인덱스 번호를 의미합니다. 이는 그 인덱스 값을 확인하기 위해서 포인터로 지정하면 값을 볼 수 있습니다.
printf("arr[%d]의 요소값: %d\n", i, arr[i]);
printf("*arr[%d] 포인터값은:%d\n", i, *(arr + i));
출력함수에서 arr[i]와 *(arr+i) 가 동일한 값이 나온다는 것을 알 수 있습니다.
#include<stdio.h>
int main() {
int arr[5] = { 10,20,30,40,50 };
printf("arr 값 : %d\n", arr);
printf("arr+1 값 : %d\n", arr+1);
for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
printf("arr[%d]의 주소값 :%d\n", i, arr+i);
printf("arr[%d]의 요소값: %d\n", i, arr[i]);
printf("*arr[%d] 포인터값은:%d\n", i, *(arr + i));
}
}
728x90
반응형
'C 언어' 카테고리의 다른 글
c 언어[029] 2차원 배열 형식과 구조 및 출력 (0) | 2021.10.09 |
---|---|
c 언어[028] 배열(array)과 포인터( pointer)- 포인터 배열 (0) | 2021.10.07 |
c 언어[026] 문자열과 배열(3) strcpy:문자열 복사, strcat(문자열 추가), 문자열 초기화 (0) | 2021.10.05 |
c 언어[025] 문자열과 배열(2) strlen 문자열크기, 배열크기 (0) | 2021.10.04 |
c 언어[024] 문자열과 배열(1) 문자열 출력 char arr[100] = { 'H','e','l','l','o' }; char arr1[100] = "hello \n"; (0) | 2021.10.03 |
댓글