목록Coding/C (11)
0w0
//배열 매개 변수 #include void change(int *b, int n){// = void change(int b[], int n)int i,j,temp=0;for(i=0; i
//call-by-reference//주소를 인자로 넘기고 포이터를 매개변수로 받습니다. #include void print_test(int a, int b){printf(" a = %db = %d \n\n",a,b);} void swap_test(int *a, int *b){int temp=0;temp=*a;*a=*b;*b=temp;} int main(){int a=100;int b=200;print_test(a,b);swap_test(&a,&b);print_test(a,b);return 0; }
//문자열 거꾸로 출력 로꾸거 #include#include void reverse(char []); int main(){char string[]="Good, Well Done";printf("%s \n",string);reverse(string);printf("%s\n",string);system("pause");return 0;} void reverse(char str[]){int i, length;char temp;length=strlen(str);for(i=0; i
//포인터를 배열 처럼 사용 가능 #include int main(){int i;int a[]={10,20,30,40,50};int *p;p=a;//포인터 p에 배열의 이름 a을 대입하면 배열의 첫 번째 주소가 p에 대입되는 것과 같습니다.//p=a; 문장이 끝나면 p와 a는 똑같은 주소를 가리키게됩니다. for(i=0; i
//포인터와 배열 //배열 이름은 포인터//포인터를 배열처럼 사용 가능 // valuea[i] = *(a+i)// reference &a[i] = a+i #include int main(){int a[]={10,20,30,40,50};int i;printf(" value\n");for(i=0; i
//포인터의 형변환 #include int main(){char buffer[8];double *pd=NULL;int *pi=NULL;pd=(double *)buffer;//8byte의 char형 배열을 double형으로 형변환해서 포인터 pd에 주소 전달*pd=3.14;printf("%0.3f \n", *pd);pi=(int *)buffer;//char 8byte에서 double형의 8byte가 int형으로 형변황해서 포인터 pi에 주소 전달 *pi=123;printf("%5d \n",*pi);*(pi+1)=456;//int형으로 pi에 4byte를 입력했기 때문에 8byte 중에서 나머지 4byte를 pi의 +1로 입력 가능 printf("%5d \n",*(pi+1));return 0; }
//NULL은 stdio.h에 0으로 정의되어 있다. //간접 참조 연산자와 증감 연산자 // *p++;포인터 p를 증가( 포인터 p는 주소이기 값, 포인터 타입만큼 한번 증가)// (*p)++;p가 가리키는 위치의 값을 증가(포인터 p가 가지고 있는 주소의 대상을 한번 증가) #include int main(){int i= 10;int *pi= &i;printf("i = %d, pi= 0x%x \n",i,pi);(*pi)++;//pi가 가리키는 대상 값을 증가 printf("i = %d, pi= 0x%x \n",i,pi);*pi++;//포인터 pi를 증가printf("i = %d, pi= 0x%x \n",i,pi);return 0; } 수식 의미 v= *p++ p가 가리키는 값을 v에 대입한 후에 p를..
//버블 정렬 (오름차순) #include#define n 10 int main(){int i, j, temp=0;int arr[n]={2,6,8,7,9,1,0,3,5,4};int k;printf("\n");for(i=0; i
//선택 정렬 (오름차순) #include#define n 10 int main(){int arr[n]={2,6,8,7,9,1,0,3,5,4};int i, j, temp=0;int k; printf("\n");for(i=0; i
//간접 참조 연산자 *//포인터 p가 가리키는 주소에 저장된 내용을 가져오려면 p앞에 * 기호를 붙여서 *p하면 된다.//이것을 포인터를 통하여 메모리를 간접 참조(dereferencing, indirection)한다고 한다.//만약, p가 변수 i를 가리킨다고 하면 *p는 변수 i와 같다 //*p는 p가 가리키는 위치에 있는 데이터를 가져오라는 의미이다. #include int main(){int i=100;int *p=NULL;p=&i;printf("\n"); printf(" i = %d \n",i);printf(" *p = %d \n",*p); //간접 참조 연산자 printf("\n");printf(" &i = 0x%x \n",&i);printf(" p = 0x%x \n",p);printf("\..