포인터도 배열 이름처럼 간주될 수 있고 배열과 똑같이 사용할 수 있다.
#include<stdio.h>
int main(void)
{
int a[] = { 10, 20, 30, 40, 50 };
int* p;
p = a;
printf("a[0]=%d a[1]=%d a[2]=%d \n", a[0], a[0], a[0]);
printf("p[0]=%d p[1]=%d p[2]=%d \n", p[0], p[1], p[2]);
p[0] = 60;
p[1] = 70;
p[2] = 80;
//포인터를 마치 배열의 이름처럼 사용하여 배열 요소에 값을 대입한다. p와 a는 똑같은 곳을 가리키고 있기 때문에 p를 사용하든지 a를 사용하든지 결과는 똑같다.
printf("a[0]=%d a[1]=%d a[2]=%d", a[0], a[1], a[2]);
printf("p[0]=%d p[1]=%d p[2]=%d", p[0], p[1], p[2]);
return 0;
}
자율 주행 자동차
자율 주행 자동차에 3개의 센서(왼쪽, 중간, 오른쪽 센서)가 있고 이들 3개의 센서에서 장애물까지의 거리를 getSensorData() 함수를 통하여 받는다고 가정하자
즉 getSensorData() 함수는 매개 변수를 통하여 3개의 double형 데이터를 반환하여야 한다. getSensordata()를 작성해보자.
#include<stdio.h>
//0부터 00까지의 난수(실수형태)를 발생하여 크기가 3인 배열 p에 저장한다.
void getSensorData(double* p)
{
p[0] = rand() % 100;
p[1] = rand() % 100;
p[2] = rand() % 100;
return;
}
int main(void)
{
double sensorData[3];
getSensorData(sensorData);
printf("왼쪽 센서와 장애물과의 거리: %lf \n", sensorData[0]);
printf("중간 센서와 장애물과의 거리: %lf \n", sensorData[1]);
printf("오른쪽 센서와 장애물과의 거리: %lf \n", sensorData[2]);
return 0;
}
'coding > C언어' 카테고리의 다른 글
C프로그래밍 배열 이해하기. 극장 좌석 예약하기 프로그램 (0) | 2021.11.18 |
---|---|
C프로그래밍 이해하기. 삼각함수 그리기 (0) | 2021.11.18 |
C프로그래밍 함수 이해하기. 섭씨 온도를 화씨 온도로, 그 반대로 변환하는 프로그램 작성. 난수함수로 동전던지기 게임 만들기; (0) | 2021.11.18 |
C 프로그래밍 포인터 이해하기 (0) | 2021.11.16 |
C 프로그래밍 배열 이해하기 max min 구하기 (0) | 2021.11.16 |