프로젝트 & 과제/3학년

[C언어] 포인터로 배열 수정

qqlzzb 2022. 2. 2. 23:07

개요

프로그래밍 언어 : C언어

과제 수행 날짜 : 2020.10.16

과제 개요 : char 포인터 변수를 이용하여 int 1차원 배열의 값을 5씩 빼서 다시 저장(int 배열의 요소는 5이상 255이하)

 

코드

#include <stdio.h>
int main()
{
	int data[6] = { 5,20,30,40,250,60 };
	int d = 5;
	for (int i = 0; i < 6; i++)
	{
		char *p = (char *)&data[i];
		*p = data[i] - d;
		printf("%d ", data[i]);
	}
}

결과

char *p = (char *)&data[i]; 와 같이 char 형식으로 캐스팅 연산을 하여 *p 는 data[i]의 첫 번째 바이트를 가리키도록 한다. 그리고 첫 번째 바이트에서 5를 빼는 연산을 수행한 후, *p가 가리키는 곳에 그 값을 대입한다. 그 후 data 배열을 출력한다.