곽길문 ¶
#새싹과제.20105801 곽길문
1~5.www.koistudy.net 코이스터디 100번~104번까지 Accept받기(등업이 안되어 있으면 그 문제의 소스를 저한테 보내주세요)
-#include<stdio.h>
int main()
{
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d",a+b);
return 0;scanf("%d %d",&a,&b);
printf("%d",a+b);
}
-#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d %d",a/b,a%b);
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d %d",a/b,a%b);
return 0;
}
-#include<stdio.h>
int main()
{
double a,b;
scanf("%lf %lf",&a,&b);
printf("%g ",a*b/2);
{
double a,b;
scanf("%lf %lf",&a,&b);
printf("%g ",a*b/2);
return 0;
}
-#include<stdio.h>
-#include<stdio.h>
int main()
{
float r,c;
{
float r,c;
scanf("%f ",&r);
c=(float)r/2;
printf("%.2f ",c*c*3.14);
c=(float)r/2;
printf("%.2f ",c*c*3.14);
return 0;
}
-#include<stdio.h>
int main()
{
float n1,n2,n3;
{
float n1,n2,n3;
scanf("%f %f %f",&n1,&n2,&n3);
printf("%.3f ",(float)(n1+n2+n3)/3);
printf("%.3f ",(float)(n1+n2+n3)/3);
return 0;
}
6.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
-#include<stdio.h>
void swap(int *a,int *b);
int main()
{
int main()
{
char x='A',y='B';
printf("x= %c y=%c\n",x,y);swap(&x,&y);
printf("x=%c ,y=%c\n",x,y);
return 0;
printf("x=%c ,y=%c\n",x,y);
return 0;
}
void swap(int *a,int *b)
{
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;temp=*a;
*b=temp;
}
7.2차원 배열(4x4) 두개의 곱을 구하는 프로그램 작성.
2X2행렬의 곱을 해봤습니다
#include<stdio.h>
printf("행렬의 곱\n");
for(j=0;j<2;j++){
}
for(p=0;b<2;p++){
if(j==0 && p==0){
}else if(j==0&& p==1){
}else if(j==1&&p==0){
}else{
}
cjp=q*w+e*r;
printf("%d",cjp);
}
printf("\n");if(j==0 && p==0){
}else if(j==0&& p==1){
}else if(j==1&&p==0){
}else{
}
cjp=q*w+e*r;
printf("%d",cjp);
}
}
return 0;
}
}
8.다음 형태로 출력되는 프로그램을 짜 보세요.
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
#include<stdio.h>
int main()
{
int a[]5={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
int c55;
int j,p;
int main()
{
int a[]5={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
int c55;
int j,p;
for(j=0;j<5;j++){
for(p=0;p<5;p++){
for(p=0;p<5;p++){
}
printf("\n");
j++;
}
printf("\n");
j++;
}
return 0;
}
}
9.포인터를 이용한 예제코드 하나를 짜 보세요.
#include<stdio.h>
int main()
{
int main()
{
int num=2;
int *a;
a=#
printf("%d\n",*a);
return 0;
}int *a;
a=#
printf("%d\n",*a);
return 0;
//'0'이 출력된다.
10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
(rand()%1000을 한다면 1에서 1000까지의 숫자가 나올 것입니다.)
-linear search란 리스트의 처음부터 하나씩 비교하여 찾아가는 선형탐색을 말한다.
짧은 예제를 공부해서 가려합니다
#include<stdio..h>
int Lsearch(int ar[], int len, int targer)
{
int i;
for(i=0;i
int Lsearch(int ar[], int len, int targer)
{
int i;
for(i=0;i
return -1;
}
int main(){
int arr[]={3,5,2,4,9};
int idx;
idx=Lsearch(arr,sizeof(arr)/sizeof(int),4);
int idx;
idx=Lsearch(arr,sizeof(arr)/sizeof(int),4);
if(idx== -1)
printf("search fail\n");
else
printf("%d\n",idx);
idx = Lsearch(arr,sizeof(arr)/sizeof(int),7);
printf("search fail\n");
else
printf("%d\n",idx);
idx = Lsearch(arr,sizeof(arr)/sizeof(int),7);
if(idx ==-1)
printf("search fail\n");
else
printf("%d\n",idx);
return 0;
printf("search fail\n");
else
printf("%d\n",idx);
return 0;
}
11.Sort를 하나 구현해보세요. 11번과 같은 방법으로 숫자를 랜덤으로 넣은 후, 정렬하고, 정렬된 것을 출력하면 됩니다.
- u.u
- u.u
12.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
- *a가 b를 가리키는 포인터도 선언 되었다면, &a는 a의 주소값, a는 메모리 안에 있는 값(즉, b의 주소값-포인터의 정의), &b는 b의 주소값, b는 메모리 안에 있는 값(할당한 값),a=&b와 같다. 둘다 b의 주소값을 나타낸다.*a=b와 같고 b에 할당한 값과 같다.
편집1.4.1.2 예습 ¶
1.구조체가 무엇인지 알아보고, 간단한 구조체 하나를 만들어보세요.
- 다른 종류의 데이터를 하나로 묶어서 사용하는 데이터 결합법을 구조체라고 한다. 구조체는 같은 자료형을 묶어서 한다면 구조체는 다른 자료형을 묶어 사용한다.
1.구조체가 무엇인지 알아보고, 간단한 구조체 하나를 만들어보세요.
- 다른 종류의 데이터를 하나로 묶어서 사용하는 데이터 결합법을 구조체라고 한다. 구조체는 같은 자료형을 묶어서 한다면 구조체는 다른 자료형을 묶어 사용한다.
#include<stdio.h>
struct Student
{
{
int id;
int age;
char *name;
int age;
char *name;
};
int main()
{
struct Student stu;
{
struct Student stu;
stu.id =1001;
stu.age=10;
stu.name ="kim so ri";
stu.age=10;
stu.name ="kim so ri";
printf("id : %d\n",stu.id);
printf("age : %d\n",stu.age);
printf("name : %s\n",stu.name);
printf("age : %d\n",stu.age);
printf("name : %s\n",stu.name);
return 0;
}
}
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
-동적할당 malloc에 대해.....
molloc은 함수가 원하는 역활은 우리가 원하는 크기의 자료를 메모리에 할당하고 그 주소값을 다시 되돌려 주는 역활이다.
입력값은 원하는 크기, 리턴값은 메모리 주소이다..
molloc은 함수가 원하는 역활은 우리가 원하는 크기의 자료를 메모리에 할당하고 그 주소값을 다시 되돌려 주는 역활이다.
입력값은 원하는 크기, 리턴값은 메모리 주소이다..
하는 방법 =
포인터 변수 = (포인터의 자료형 )malloc(원하는 자료크기);
포인터 변수 = (포인터의 자료형 )malloc(원하는 자료크기);
ex..
arr = (int *)malloc(sizeof(int)*nSize); // malloc으로 nSize만큼 int 형 배열을 생성
malloc을 한 후에는 free을 호출해서 메모리에 할당하였던 것을 풀어주어야 한다. 그렇지 않으면 메모리에 남겨서 필요할때 사용할수가 없다.
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
- 포인터의 주소를 가리키는 포인터를 이중포인터라고 한다.
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
void main()
{
{
int **ptr;
int i,j,k=1;
//int ptr22;
ptr = (int **)malloc(2*sizeof(int *));
for(i=0;i<2;i++)
for(i=0;i<2;i++)
{
}
}int i,j,k=1;
//int ptr22;
ptr = (int **)malloc(2*sizeof(int *));
for(i=0;i<2;i++)
ptri = (int *)malloc(2*sizeof(int));
for(i=0;i<2;i++)
{
}
//솔직히 예제 이해가 잘 안가요 ㅜ
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
-스택이란 후입선출방식의 자료구조, 큐는 선입선출방식으로 처음으로 들어갔던 것이 맨 먼저 꺼낼수 있는 방식이다.
int sp=0;
int push(int);
int pop(int *);
int push(int);
int pop(int *);
int main(){
int n=0;
push(10);
push(20);
push(30);
if (push(40) == -1)
{
push(10);
push(20);
push(30);
if (push(40) == -1)
{
printf("Stack Overflow\n");
}
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
printf("pop : %d\n",n);
if(pop(&n) == -1)
{
printf("Stack Underflow\n");
{
printf("Stack Underflow\n");
}
return 0;
}
return 0;
}
}else
{
{
return -1; // 가득 찾을때 overflow
}}
}else
{
return -1; //비었을 때. underflow
{
return -1; //비었을 때. underflow
}
}
}
// pop으로 데이터를 추출할때 마지막에 들어간 30부터 나오게 된다.
-큐 예제
#include<stdio.h>
#include<conio.h>
#define MAX 5
#include<stdio.h>
#include<conio.h>
#define MAX 5
void Delete()
{
{
if(rear < 0 )
--rear;
}printf("더이상 비울 큐가 없음");
else --rear;
void main()
{
{
int insert_num;
int i,j;
for(i=0; i<5; i++)
{
for(j=0; j
for(j = front ; j < 5; j++){ //엔터를 한번씩 누르면 값이 차례대로 빠짐
}
}int i,j;
for(i=0; i<5; i++)
{
printf("숫자를 입력하세요");
scanf("%d", &insert_num);
insert(insert_num);
}scanf("%d", &insert_num);
insert(insert_num);
for(j=0; j
printf("%d " ,queuej); printf("\n");
}for(j = front ; j < 5; j++){ //엔터를 한번씩 누르면 값이 차례대로 빠짐
}
도상희 ¶
1~5.www.koistudy.net 코이스터디 100번~104번까지 Accept받기(등업이 안되어 있으면 그 문제의 소스를 저한테 보내주세요)
6.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
-06.c
-06.c
7.2차원 배열(4x4) 두개의 곱을 구하는 프로그램 작성.
-07.c
-07.c
8.다음 형태로 출력되는 프로그램을 짜 보세요.
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
-배열로 하는건지 아니면 for문을 몇 개를 써야하는 건지 ㅜ,ㅜ
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
-배열로 하는건지 아니면 for문을 몇 개를 써야하는 건지 ㅜ,ㅜ
9.포인터를 이용한 예제코드 하나를 짜 보세요.
-09.c
-09.c
10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
(rand()%1000을 한다면 1에서 1000까지의 숫자가 나올 것입니다.)
-10.c
(rand()%1000을 한다면 1에서 1000까지의 숫자가 나올 것입니다.)
-10.c
11.Sort를 하나 구현해보세요. 11번과 같은 방법으로 숫자를 랜덤으로 넣은 후, 정렬하고, 정렬된 것을 출력하면 됩니다.
-11.c
-11.c
12.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
구조체란 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것이다.
a_01.c
int* a;
int b=10;
a=&b;
printf("%d\n",&a); //포인터 변수 a의 주소
printf("%d\n",a); //a가 가리키고 있는 주소값
printf("%d\n",&b); //b의 주소값
printf("%d\n",b); //b에 들어있는 값
1.구조체가 무엇인지 알아보고, 간단한 구조체 하나를 만들어보세요.int b=10;
a=&b;
printf("%d\n",&a); //포인터 변수 a의 주소
printf("%d\n",a); //a가 가리키고 있는 주소값
printf("%d\n",&b); //b의 주소값
printf("%d\n",b); //b에 들어있는 값
구조체란 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것이다.
a_01.c
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
‘힙’에 메모리를 할당하는 것을 두고 동적 할당 이라 한다.
프로그램이 실행되는 동안에 할당해야 하는 메모리의 크기를 결정지을 수 있기 때문이다.
-a_02.c
->아직 이해가 잘 안됨ㅠ.ㅠ
‘힙’에 메모리를 할당하는 것을 두고 동적 할당 이라 한다.
프로그램이 실행되는 동안에 할당해야 하는 메모리의 크기를 결정지을 수 있기 때문이다.
-a_02.c
->아직 이해가 잘 안됨ㅠ.ㅠ
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
이중 포인터는 싱글 포인터의 주소 값을 저장하기 위한 용도로 사용되는 포인터이다.
a_03.c
이중 포인터는 싱글 포인터의 주소 값을 저장하기 위한 용도로 사용되는 포인터이다.
a_03.c
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
스택 – 데이터 입/출력이 한쪽으로만 접근 할 수 있는 자료 구조. 가장 나중에 들어간 데아타가 제일 먼저 나오게 된다.
큐 – 먼저 넣은 데이터가 먼저 나오는 FIFO구조. 스택과 반대되는 개념의 자료구조.
->(예제는 어떻게 만들어야 될지 잘 모르겠음!ㅜ.ㅜ)
스택 – 데이터 입/출력이 한쪽으로만 접근 할 수 있는 자료 구조. 가장 나중에 들어간 데아타가 제일 먼저 나오게 된다.
큐 – 먼저 넣은 데이터가 먼저 나오는 FIFO구조. 스택과 반대되는 개념의 자료구조.
->(예제는 어떻게 만들어야 될지 잘 모르겠음!ㅜ.ㅜ)
한송이 ¶
1 100)
#include<stdio.h>
int main(){
#include<stdio.h>
int main(){
int a,b;
scanf("%d",&a);
scanf("%d",&b);
printf("%d",a+b);
return 0;
}scanf("%d",&a);
scanf("%d",&b);
printf("%d",a+b);
return 0;
2 101)
#include <stdio.h>
#include <stdio.h>
int main()
{
{
int a,b,c,d;
scanf("%d %d",&a,&b);
c=a/b;
d=a%b;
printf("%d %d",c,d);
return 0;
}scanf("%d %d",&a,&b);
c=a/b;
d=a%b;
printf("%d %d",c,d);
return 0;
3 102)
#include <stdio.h>
#include <stdio.h>
int main()
{
{
int u,h;
double s;
scanf("%d %d", &u,&h);
s = (u*h)/2.0;
return 0;
}double s;
scanf("%d %d", &u,&h);
s = (u*h)/2.0;
printf("%g",s);
return 0;
4 103)
#include <stdio.h>
#include <stdio.h>
int main()
{
{
int R;
double s,r ;
scanf("%d", &R);
r=R/2.0;
s = 3.14*r*r;
return 0;
}double s,r ;
scanf("%d", &R);
r=R/2.0;
s = 3.14*r*r;
printf("%.2lf",s);
return 0;
5 104)
#include <stdio.h>
#include <stdio.h>
int main()
{
{
int a,b,c;
double ave ;
scanf("%d %d %d", &a, &b, &c);
return 0;
}double ave ;
scanf("%d %d %d", &a, &b, &c);
ave = (float)(a + b + c) / 3.0;
printf("%.3lf",ave); return 0;
6 105)
#include<stdio.h>
int main(){
#include<stdio.h>
int main(){
double a,b,c,d;
scanf("%lf",&a);
scanf("%lf",&b);
scanf("%lf",&c);
d=-(b/a);
printf("%g",d);
return 0;
}scanf("%lf",&a);
scanf("%lf",&b);
scanf("%lf",&c);
d=-(b/a);
printf("%g",d);
return 0;
7.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
#include <stdio.h>
void point(int *pval1 , int *pval2)
{
{
int temp;
temp = *pval1;
temp = *pval1;
- pval1=*pval2;
- pval2= temp;
void main()
{
{
int val1;
int val2;
val1=10;
val2=20;
printf("%d %d \n" , val1, val2);
point(&val1, &val2);
printf("%d %d \n" , val1, val2);
} int val2;
val2=20;
printf("%d %d \n" , val1, val2);
point(&val1, &val2);
printf("%d %d \n" , val1, val2);
#include <stdio.h>
int main()
{
int a44,b44,c44,d44={0},i,j,k,l;
printf("배öe열¯¡© a 입O력¤A : ");
for(i=0; i<4; i++) //a배öe열¯¡© 입O력¤A
{
}
printf("배öe열¯¡© b 입O력¤A : ");
for(i=0; i<4; i++) //b배öe열¯¡© 입O력¤A
{
}
for(i=0; i<4; i++)
{
for(i=0; i<4; i++)
{
}
return 0;
}printf("배öe열¯¡© a 입O력¤A : ");
for(i=0; i<4; i++) //a배öe열¯¡© 입O력¤A
{
}
printf("배öe열¯¡© b 입O력¤A : ");
for(i=0; i<4; i++) //b배öe열¯¡© 입O력¤A
{
}
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
{
}
}{
for(k=0; k<4; k++)
{
{ {
for(k=0; k<4; l++)
}
}
}for(i=0; i<4; i++)
{
}
return 0;
9.다음 형태로 출력되는 프로그램을 짜 보세요.
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
#include <stdio.h>
int main()
{
int main()
{
return 0;
}#include<stdio.h>
int main(){
char ch;
char *p;
char *q;
ch = 'A';
p = &ch;
q = p;
char *p;
char *q;
ch = 'A';
p = &ch;
q = p;
- p = 'Z';
printf("ch가Æ¢® 가Æ¢®지o고Æi 있O는¥A 값ƨ£ : ch=> %c\n",ch);
11.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
(rand()%1000을 한다면 1에서 1000까지의 숫자가 나올 것입니다.)
12.Sort를 하나 구현해보세요. 11번과 같은 방법으로 숫자를 랜덤으로 넣은 후, 정렬하고, 정렬된 것을 출력하면 됩니다.
13.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
&a : a의 주소
*a : a의 주소가 가르키는 실제값, a에 들어있는 값
&b : b의 주소
*b : b의 주소가 가르키는 실제값, b에 들어있는 값
&a : a의 주소
*a : a의 주소가 가르키는 실제값, a에 들어있는 값
&b : b의 주소
*b : b의 주소가 가르키는 실제값, b에 들어있는 값
*a = b
*b = a
1.4.1.2 예습 ¶
1.구조체가 무엇인지 알아보고, 간단한 구조체 하나를 만들어보세요.
구조체 : 서로 다른 종류의 데이터를 저장하기 위한 여러 자료형 변수들의 집합
#include<stdio.h>
int main(){
printf("이I름¬¡× : %s\n",s.name);
printf("나ø¨£이I : %d\n",s.age);
*b = a
1.구조체가 무엇인지 알아보고, 간단한 구조체 하나를 만들어보세요.
구조체 : 서로 다른 종류의 데이터를 저장하기 위한 여러 자료형 변수들의 집합
#include<stdio.h>
int main(){
printf("이I름¬¡× : %s\n",s.name);
printf("나ø¨£이I : %d\n",s.age);
return 0;
}
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
동적 할당을 하는 이유 : 메모리를 절약하기 위해
동적 할당에 가장 기번적으로 사용되는 것은 malloc함수이고, 이 함수를 사용하기 위해서는 "stdlib.h"헤더파일을 포함해야 한다
포인터 변수 = (포인터의 자료형 종류)malloc(원하는 자료크기);
}
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
동적 할당을 하는 이유 : 메모리를 절약하기 위해
동적 할당에 가장 기번적으로 사용되는 것은 malloc함수이고, 이 함수를 사용하기 위해서는 "stdlib.h"헤더파일을 포함해야 한다
포인터 변수 = (포인터의 자료형 종류)malloc(원하는 자료크기);
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
이중포인터 : 포인터 변수를 가르키는 포인터
이중포인터 사용이유
: 포인터형 변수가 가지고 있는 주소를 다른 지역에서 컨트롤 (바꾸기 ) 위해 !
스택 : 자료를 여러개를 넣었다가 나중에 사용하려고 할 때에는 나중에 넣은 것이 먼저 나오는 구조
큐(Queue) : 프로그램 언어에서 보면 자료 구조의 한 형태로 순차 목록의 한 형태를 뜻합니다. 원소의 삽입은 뒤(rear)에서 이루어지고 삭제는 앞(front)에서 이루어지는 자료 구조를 뜻합니다. 메모리에 적용할 경우 큐는 선입선출 방식을 뜻합니다.
이중포인터 : 포인터 변수를 가르키는 포인터
이중포인터 사용이유
: 포인터형 변수가 가지고 있는 주소를 다른 지역에서 컨트롤 (바꾸기 ) 위해 !
(데이터를 체인지 하는게 아니라 주소를 체인지)
이중포인터 선언 방법Int **p;
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.스택 : 자료를 여러개를 넣었다가 나중에 사용하려고 할 때에는 나중에 넣은 것이 먼저 나오는 구조
큐(Queue) : 프로그램 언어에서 보면 자료 구조의 한 형태로 순차 목록의 한 형태를 뜻합니다. 원소의 삽입은 뒤(rear)에서 이루어지고 삭제는 앞(front)에서 이루어지는 자료 구조를 뜻합니다. 메모리에 적용할 경우 큐는 선입선출 방식을 뜻합니다.
황혜림 ¶
12.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
a : a에 들어있는 값
&a : a의 주소
*a : a가 가르키는 변수의 값
&b : b의 주소
b : b에 들어있는 값
a : a에 들어있는 값
&a : a의 주소
*a : a가 가르키는 변수의 값
&b : b의 주소
b : b에 들어있는 값
1.4.1.2 예습
1.구조체가 무엇인지 알아보고, 간단한 구조체 하나를 만들어보세요.
- 다른 종류의 데이터를 하나로 묶어서 사용 하는 데이터 결합법
struct Student
{
int id;
int age;
char* name;
};
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
- 필요한 만큼의 메모리를 직접 동적으로 관리 할 수 이쏘록 해주는 함수이다.
int* pTmp=malloc(100);
int* pTmp=(int*)malloc(100);
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
- 포인터의 주소를 가르키는 포인터
- 다른 종류의 데이터를 하나로 묶어서 사용 하는 데이터 결합법
struct Student
{
int id;
int age;
char* name;
};
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
- 필요한 만큼의 메모리를 직접 동적으로 관리 할 수 이쏘록 해주는 함수이다.
int* pTmp=malloc(100);
int* pTmp=(int*)malloc(100);
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
- 포인터의 주소를 가르키는 포인터
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
스택 : LIFO(후입선출) 자료를 나중에 넣은 것이 먼저 나오는 자료구조
큐 : FIFO(선입선출) 먼저 넣은 자료가 먼저 나오는 자료구조
스택 : LIFO(후입선출) 자료를 나중에 넣은 것이 먼저 나오는 자료구조
큐 : FIFO(선입선출) 먼저 넣은 자료가 먼저 나오는 자료구조