[C]포인터 예제 문제 - 1

2020. 6. 17. 16:46·🛠 DevOps & Tool/Etc

# 크기가 3인 double형 배열의 모든 원소의 주소를 출력하는 프로그램을 작성하시오. 단, 주소 구하기 연산자를 사용하지 마시오.

*배열 이름을 포인터인 것처럼 이용하면 주소 구하기 연산자 없이도 배열 원소의 주소를 구할 수 있다.

*double 배열의 각 원소의 주소가 8바이트씩 차이 나는지 확인한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	double arr[3] = { 1.1,2.2,3.3 };
	double* parr = arr;

	for (int i = 0; i < 3; i++)
		printf("arr[%d]의 주소: %p\n", i, arr + i);

	return 0;
}

 

출력 화면

 

 

# 배열 원소를 가리키는 포인터와 포인터 연산을 이용해서 실수형 배열의 모든 원소를 출력하는 프로그램을 작성하시오. 실수형 배열은 크기가 10이고 값은 마음대로 지정해서 사용해도 된다.

int main(void)
{
	double arr[10] = { 0.1,2.0,3.4,5.2,4.5,7.8,9.7,1.4,6.6,7.2 };
		double* parr = arr;

		for (int i = 0; i < 10; i++)
		{
			//printf("%.2f  ", parr[i]); 방법1
			printf("%.2f  ", *(parr + i)); //방법2
			//printf("%.2f  ", *parr); 방법3 세트
			//parr++; 방법3 세트
		}

	return 0;
}

출력 화면

 

 

# 배열 원소를 가리키는 포인터가 배열의 첫 번째 원소를 가리킬 때 포인터 연산을 이용해서 정수형 배열의 모든 원소를 순서대로 출력한다. 그다음, 포인터가 배열의 마지막 원소를 가리키게 하고, 배열의 원소를 역순으로 출력하는 프로그램을 작성하시오. 정수형 배열은 크기가 10이고 마음대로 초기화해서 사용해도 된다.

int main(void)
{
	int arr[10] = { 11,22,33,44,55,66,77,88,99,110 };
	int* parr = &arr[0];

	printf("배열: ");
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", *(parr + i));

	}

	printf("\n역순: ");

	for (int i = 9; i >= 0; i--)
	{
		printf("%d ", *(parr + i));
	}

	//역순의 두번째 방법

	//parr = &arr[9];
	//for (int i = 0; i < 10; i++)
	//{
	//	printf("%d ", *parr);
	//	parr--;
	//}

	return 0;
}

출력 화면

 

 

# 배열 원소를 가리키는 포인터를 이용해서 실수형 배열의 평균을 구하는 프로그램을 작성하시오. 실수형 배열은 크기가 10이고 마음대로 초기화해서 사용해도 된다.

int main(void)
{
	double arr[10] = { 0.1,2.0,3.4,5.2,4.5,7.8,9.7,1.4,6.6,7.2 };
	double* parr = &arr[0];
	double average = 0;;
	printf("배열: ");
	for (int i = 0; i < 10; i++)
	{
		printf("%.2f ", parr[i]);
		average += parr[i];
	}
	average = average / 10;
	printf("\n평균: %f", average);

	return 0;
}

출력 화면

 

저작자표시 비영리 (새창열림)

'🛠 DevOps & Tool > Etc' 카테고리의 다른 글

[IntelliJ] 인텔리제이에서 Lorem Ipsum(무작위 텍스트) 사용하기  (0) 2020.10.08
[IntelliJ] git pull 시 these untracked files would be overwritten by pull 오류  (0) 2020.10.08
[C]포인터 예제 문제 - 2  (2) 2020.06.30
'🛠 DevOps & Tool/Etc' 카테고리의 다른 글
  • [IntelliJ] 인텔리제이에서 Lorem Ipsum(무작위 텍스트) 사용하기
  • [IntelliJ] git pull 시 these untracked files would be overwritten by pull 오류
  • [C]포인터 예제 문제 - 2
현주먹
현주먹
대구 불주먹 출신 현주먹의 개발.log
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (170) N
      • 👶🏻 CS (15)
        • Operating System (7)
        • DB (5)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • DB&JPA (6)
        • Test Code (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (65) N
        • 후기 및 회고 (6) N
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
        • 📖 가상 면접 사례로 배우는 대규모 시스템 설계 .. (7) N
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL repository
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 태그

    개발자멘토링
    인프런 특정문자뒤집기
    NextSTEP
    TDD 클린 코드 with Java
    오블완
    til
    항해99
    자바의신절판
    로또 미션
    jsp
    f-lab 후기
    ==와 equals()
    에프랩 후기
    F-Lab
    99클럽
    C
    자바의정석
    코딩테스트준비
    티스토리챌린지
    백준10250
    데브클럽
    코테스터디
    오라클
    개발자취업
    2025스프링캠프
    에프랩
    JPA
    인프런 단어뒤집기
    백준
    객체지향
  • hELLO· Designed By정상우.v4.10.2
현주먹
[C]포인터 예제 문제 - 1
상단으로

티스토리툴바