본문 바로가기

c언어/자료

c언어 7일차

 

 

 

-------------------------------------------------------------------------------------------------------------

// 변함 없음 (1) 

#include <stdio.h>

void pswap(int *p1, int *p2);

int main(void)
{

 int A=10, B=20;
 int *pA, *pB;
 pA=&A, pB=&B;
 pswap(pA, pB);

 //함수 호출후
 printf("pA가 가리키는 변수 : %d \n",*pA);
    printf("pB가 가리키는 변수 : %d \n",*pB);
 return 0;
}

void pswap(int *p1, int *p2)

{
int *temp;
temp = p1;
p1=p2;
p2=temp;

}

 

-------------------------------------------------------------------------------------------------------------

//값 바꾸기  (2) **p 포인트 변수의 주소

#include <stdio.h>

void pswap(int **p1, int **p2);

int main(void)
{

 int A=10, B=20;
 int *pA, *pB;
 pA=&A, pB=&B;
 pswap(&pA, &pB);

 //함수 호출후
 printf("pA가 가리키는 변수 : %d \n",*pA);
    printf("pB가 가리키는 변수 : %d \n",*pB);
 return 0;
}

void pswap(int **p1, int **p2)

{
int *temp;
temp = *p1;
*p1=*p2;
*p2=temp;

}

-------------------------------------------------------------------------------------------------------------

 


/* main함수에 두개의 int 형 포인터와 길이가 5인 배열선언

5개 정수를 사용자로 입력 > 배열로 저장

최대값 최소값 출력 포인트 포인트  */


#include <stdio.h>


void MexMin(int *arr, int size, int **mx, int **mn);


int main(void)

{

int arr[5];

int *max, *min;

int i;


for(i=0; i<5; i++)

{

printf("정수 입력: ");

scanf("%d", &arr[i]);

}

MexMin(arr, sizeof(arr)/sizeof(int), &max, &min);

printf("최대: %d, 최소 : %d \n",*max, *min);


return 0;

}


void MexMin(int *arr, int size, int **mx, int **mn)

{

int i;

int *max, *min;


max=min=arr;

for(i=0; i<size; i++)

{

if(*max<arr[i])

    max=&arr[i];


if(*min>arr[i])

   min=&arr[i];

}


*mx=max;

*mn=min;

}



-------------------------------------------------------------------------------------------------------------

 

#include <stdio.h>
void show_data();
void main(void)
{
 int arr1[2][4] ={1,2,3,4,5,6,7,8};
 int arr2[3][4]= {{1},{2},{3}};
 show_data(arr1,2);
 show_data(arr2,3);
}
void show_data(int(*ptr)[4],int a)  // 매개 변수만 허용  ( int *ptr2[][4] )
{
 int i,j;
 for(i=0;i<a;i++){
  for(j=0;j<4;j++)
   printf("%d",ptr[i][j]);
   printf("\n");
 }
}

 

 

-------------------------------------------------------------------------------------------------------------

 

 

#include <stdio.h>
void add(int a, int b);
void SPrint(char * str);

void main(void)
{
 char *string = "Function Pointer";
 int a= 10, b= 20;

 void (*fPtr1)(int, int)=add;
 void (*fPtr2)(char*)=SPrint;

 fPtr1 (a,b);
 fPtr2 (string);
}

void add(int a, int b)
{
 printf("덧셈 결과 : %d \n", a+b);
}

void SPrint(char* str)
{
 printf("입력된 문자열  : %s \n", str);
}

 

-------------------------------------------------------------------------------------------------------------

#include <stdio.h>
void add(void);
void q(int s);
void min(void);

void main(void)
{
 int sel;
 while(1){
  printf("선택 : 덧셈(1), 뺄셈(2),종료(3)");
  scanf("%d",&sel);
  if(sel==3)
   break;
  q(sel);
 }
 printf("프로그램이 종료 되었습니다. \n");
 return 0;
}

void q(int s)
{
 void (*fPtr)(void);
 if(s==1) fPtr=add;
 else fPtr=min;
 fPtr();
}

void add(void)
{
 int a,b;
 printf("덧셈 숫자 두개 입력:");
 scanf("%d %d",&a,&b);
 printf("결과  : %d \n", a+b);
}

void min(void)
{
 int a,b;
 printf("뺄셈 숫자 두개 입력:");
 scanf("%d %d",&a,&b);
 printf("결과  : %d \n", a-b);
}

-------------------------------------------------------------------------------------------------------------

// cmd 로 실행 해당 폴더 가서 파일이름 작성후 문자 작성

 

#include <stdio.h>

int main(int argc,char **argv)
{
 int i = 0;
 printf("전달된 문자열의 수 : %d \n",argc);

 for(i=0;i<argc;i++)
  printf("%d번째 문자열  :%s \n",i+1, argv[i]);
 return 0;
}

 

 

 

-------------------------------------------------------------------------------------------------------------

 

#include <stdio.h>

struct person{
 char name[20];
 char phone[20];
};

int main()
{
 struct person man={"하나","둘"};
 struct person *pman;
 pman=&man;

 //구조체 변수를 이용한 출력
 printf("name: %s\n",man.name);
 printf("phone:%s\n",man.phone);

 //구조체 포인터를 이용한 출력
 printf("name: %s\n",(*pman).name);
 printf("phone:%s\n",(*pman).phone);

 // 구조체 포인터를 이용한 출력 2
 printf("name: %s\n",pman->name);
 printf("phone:%s\n",pman->phone);
}

-------------------------------------------------------------------------------------------------------------

 

#include <stdio.h>

struct person{
 char name[20];
 char phone[20];
};

int main()
{
 struct person arr[3]={0,};
 int i;
 for(i=0;i<3;i++){
  printf("이름 , 전화번호 순으로 입력:");
  scanf("%s %s",arr[i].name,arr[i].phone);
}

 printf("\n입력 결과 :\n");
 for(i=0;i<3;i++){
 printf("이름: %s",arr[i].name);
 printf("전화번호 : %s \n",arr[i].phone);
}
return 0;
}

-------------------------------------------------------------------------------------------------------------

 

#include <stdio.h>

struct a{
 char addr[30];
 char tel[20];
};

struct b{
 char name[20];
 char pid[20];
 struct a*info;
};

int main()
{
 struct a info ={"하나", "둘"};
 struct b man={"셋","넷"};

 man.info=&info;

 printf("1: %s\n", man.name);
    printf("2: %s\n", man.pid);
    printf("3: %s\n", man.info->addr);
 printf("4: %s\n", man.info->tel);
return 0;
}

-------------------------------------------------------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'c언어 > 자료' 카테고리의 다른 글

c언어 8일차  (0) 2014.05.04
c언어 6일차  (0) 2014.04.27
c언어 5일차  (0) 2014.04.26
c언어 4일차  (0) 2014.04.20
c언어 3일차  (0) 2014.04.19