[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
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (167) N
      • 👶🏻 CS (15)
        • Operating System (8)
        • Database (4)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • JPA (5)
        • Test Code (1)
        • Database (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (62) N
        • 후기 및 회고 (5)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
        • 📖 가상 면접 사례로 배우는 대규모 시스템 설계 .. (5) N
  • 블로그 메뉴

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

  • 최근 글

  • 최근 댓글

  • 태그

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

티스토리툴바