#include <stdio.h>
int main(void)
{
// 정수형 배열 ary를 선언합니다. 크기는 3으로 지정합니다.
int ary[3];
// 정수형 포인터 pa를 선언하고, 배열 ary를 가리키도록 초기화합니다.
int *pa = ary;
// 정수형 변수 i를 선언합니다.
int i;
// 배열의 첫 번째 요소에 10을 할당합니다.
*pa = 10;
// 배열의 두 번째 요소에 20을 할당합니다. 포인터 산술을 사용하여 두 번째 요소에 접근합니다.
*(pa + 1) = 20;
// 배열의 세 번째 요소에 첫 번째 요소와 두 번째 요소의 합을 할당합니다.
pa[2] = pa[0] + pa[1];
// 배열을 순회하면서 각 요소를 출력합니다.
for (i = 0; i < 3; i++)
{
// printf 함수를 사용하여 배열의 각 요소를 출력합니다.
// %5d 형식 지정자를 사용하여 출력 시 공백을 추가하여 오른쪽 정렬합니다.
printf("%5d", pa[i]);
}
// 프로그램을 종료합니다.
return 0;
}
결과 : 10 20 30
C언어.. 바이트? 뭐어쩌구하는거 왜 들어도들어도 가물가물한지 모르겠음
#include <stdio.h>
int main(void)
{
// 크기가 3인 정수형 배열 ary를 선언합니다.
int ary[3];
int i;
// 첫 번째 배열 요소에 10을 할당합니다.
*(ary + 0) = 10;
// 두 번째 배열 요소에 첫 번째 배열 요소의 값에 10을 더한 값을 할당합니다.
*(ary + 1) = *(ary + 0) + 10;
// 키보드로부터 입력을 받아 세 번째 배열 요소에 할당합니다.
printf("세 번째 배열 요소에 키보드 입력 : ");
scanf("%d", ary + 2);
// 배열을 순회하며 각 요소를 출력합니다.
for (i = 0; i < 3; i++)
{
// 포인터 산술을 사용하여 배열의 각 요소에 접근하고 값을 출력합니다.
printf("%5d", *(ary + i));
}
return 0;
}
배열명과 포인터의 차이
포인터가 배열명처럼 쓰이긴 하지만 차이점이 많음.
1. sizeof 연산의 결과가 다름
#include <stdio.h>
int ary[3];
int *pa = ary;
pa[1]
(pa+1)
sizeof(ary)
sizeof(pa)
결과는 에러가 뜸
int 선언은 ary[3] 배열에 정수만 넣을 것이라는 선언.
int *pa = ary 는 포인터 변수로 ary의 주소를 pa로 할 것이라는 선언.
pa[1]과 (pa+1)의 차이
pa[1] : 101동 101호를 저장
(pa+1) : 101동까지 저장, 그리고 거기서 첫번째 호수라는 뜻 => 저장 용량이 적음
#include <stdio.h>
int main(void)
{
// 크기가 3인 정수형 배열 ary를 선언하고 초기화합니다.
int ary[3] = { 10, 20, 30 };
// 정수형 포인터 pa를 선언하고, 배열 ary를 가리키도록 초기화합니다.
int *pa = ary;
int i;
// 배열의 값을 출력합니다.
printf("배열의 값 : ");
for (i = 0; i < 3; i++)
{
// 포인터를 사용하여 배열의 각 요소에 접근하고 값을 출력합니다.
printf("%d ", *pa);
// 포인터를 다음 배열 요소로 이동합니다.
pa++;
}
return 0;
}
'공부 기록 > C' 카테고리의 다른 글
20240422 C언어 - 포인터 (0) | 2024.04.23 |
---|---|
대영쓰 클래쓰 - C언어 1일차 (0) | 2024.04.09 |
2024.04.09. C언어 - strcpy, strlen, strcmp (0) | 2024.04.09 |
2024.04.03. C언어 - 문자 (0) | 2024.04.03 |
2024.03.25. C언어 (0) | 2024.03.25 |