본문 바로가기

IT

(20)
C언어본색 연습문제 Part 2.4.2 1. 문제 다음과 같이 실행결과가 출력되었습니다. 결과를 보고 코드의 (//) 부분을 완성하세요. 2. 결과 3. 코드 12345678910111213int main(){ int array[5] = { 10,20,30,40,50 }; int* p = NULL; p = array; printf("%d %d %d %d %d \n", p[0], p[1], p[2], p[3], p[4]); printf("%d %d %d %d %d \n", *(p + 0), *(p + 1), *(p + 2), *(p + 3), *(p + 4)); return 0; } Colored by Color Scriptercs 4. 설명 int형의 주소를 가지는 int* p 를 선언하고,p = array, array의 시작주소를 포인터로 ..
프로그래밍 연습문제 Part 2.4.1 1. 문제 정수형 배열에 10, 30, 40, 30, 20을 저장하고 포인터 변수로 배열에 접근하여 배열의 합을 구하세요. 2. 결과 3. 코드 123456789101112131415int main(){ int array[5] = { 10,30,40,30,20 }; int *p = NULL; int i,sum = 0; p = array; for (i = 0; i
C언어본색 연습문제 Part 2.3.5 1. 문제 다음 그림을 보고 1단계에서 2단계까지를 나타내는 프로그램을 작성하세요. 2. 결과 3. 코드 123456789101112131415161718192021#include int main(){ int array[3] = { 10,20,30 }; int *ip = NULL; int **ipp = NULL; printf("%d %d %d \n", array[0], array[1], array[2]); ip = &array; ipp = &ip; printf("------------\n"); printf("%d %d %d \n", array[0], array[1], array[2]); printf("%d %d %d \n", ip[0], ip[1], ip[2]); printf("%d %d %d \n", ..
C언어본색 연습문제 Part2.3.4 1. 문제 다음 그림을 보고 1단계에서 4단계까지를 나타내는 프로그램을 작성하세요. 단, 2단계에서는 ip1을 이용하여 num1의 값에 접근, 3단계에서는 ip2를 이용하여 num1의 값에 접근, 4단계에서는 ip3를 이용해서 num1의 값에 접근하는 코드를 작성하세요. 2. 결과 3. 코드123456789101112131415161718192021222324252627282930#include int main(){ int num1 = 10; int* ip1 = NULL; int** ip2 = NULL; int *** ip3 = NULL; ip1 = &num1; ip2 = &ip1; ip3 = &ip2; printf("%d \n", num1); *ip1 = 20; // *&num1 printf("%d \..
C언어본색 연습문제 Part 2.3.3 1. 문제 다음 그림을 보고 1단계에서 2단계까지를 나타내는 프로그램을 작성하시오. 2. 결과 3. 코드 123456789101112131415161718#include int main(){ int num1 = 10; int* ip1 = NULL; int** ip2 = NULL; int *** ip3 = NULL; ip1 = &num1; ip2 = &ip1; ip3 = &ip2; printf("%d %d %d %d \n", num1, *ip1, **ip2, ***ip3); return 0; }Colored by Color Scriptercs 4. 설명이 문제는 다차원포인터를 이해했는지 확인하는 문제입니다. num1에는 10의 값이 들어가있고, 그 이후 포인터가 참조, 그 포인터를 이중포인터가 참조.. 이..
C언어본색 연습문제 Part2.3.2 1. 문제 다음 코드를 분석해서 그 결과를 그림으로 나타내세요. 2. 결과 3. 코드1234567891011121314151617181920212223#include int main(){ int a = 10; int b = 20; int temp; int* p1 = NULL; int* p2 = NULL; p1 = &a; p2 = &b; temp = *p1; *p1 = *p2; *p2 = temp; printf("%d %d \n", a, b); return 0; }cs 4. 설명 1번 문제를 풀었다면 2번 문제도 어렵지 않게 풀으실 수 있을겁니다.간단히 말해보자면,int형 포인터 2개를 선언하고, 각각 포인터 변수에 a, b를 넣고 *참조연산자를 통해서서로 값을 바꿔주는 코드겠네요.그래서 a의 값에 20이..
C언어본색 연습문제 Part2.3.1 1. 문제 다음 코드를 분석해서 그 결과를 그림으로 나타내세요. 2. 결과 3. 코드 int main(){ char c = 'B'; int num = 10; char* cp = NULL; int* ip = NULL; cp = &c; ip = # *cp = 'A'; *ip = 20; printf("%x %d \n", &num, num); printf("%x %d \n", ip ,*ip); printf("%x %c \n", &c, c); printf("%x %c \n", cp, *cp);} 4. 설명 이건 코드를 분석하는 문제입니다. 언어본색에서는 변수와 주소를 표현하는 방법이 있는데요.처음에는 어색하고 헷갈리겠지만 하다보면 굉장히 쉽게 이해가 되실겁니다.왼쪽 윗 모퉁이에 시작주소를 적고 네모 안에는..
C언어본색 연습문제 Part 2-2-5 1. 문제 int array[2][3] = {1,2,3,4,5,6}을 선언하고, array[i] == *(array+i) 표현을 이용하여 2차원 배열 요소들의 주소와 값을 출력하는 프로그램을 작성하세요. 2. 결과 3. 코드 #include int main(){int array[2][3] = { 1,2,3,4,5,6 };int i, j;for (i = 0; i