본문 바로가기
반응형

01.Bit 단기93

21_명령행인자 #include #include /* int main(int argc, char*argv[]) { int i; for (i = 0; i int(정수형) // "211" -> 211 num1 = atoi(argv[1]); num2 = atoi(argv[3]); oper = argv[.. 2018. 4. 28.
20_문자열 #include void exam1(); void exam2(); void exam3(); void exam4(); void exam5(); void exam6(); int main() { exam6(); return 0; } //문자열 표현(배열) 가장 일반적인 표현법 void exam1() { char arr1[] = { "hello" }; char arr2[] = { 'h', 'e', 'l', 'l', 'o', '\0' }; char arr3[] = "hello"; char arr4[] = { 'h', 'e', 'l', 'l', 'o'}; printf("%d : %d : %d : %d\n", sizeof(arr1), sizeof(arr2), sizeof(arr3), sizeof(arr4)); } /.. 2018. 4. 28.
19_void포인터 #include void exam1(); int main() { exam1(); return 0; } void exam1() { int num1 = 10; char ch = 'a'; int arr[10] = { 1, 2, 3, 4, 5 }; //모든 타입의 주소를 담을 수 있다. //사용시 반드시 원래의 타입으로 형변환해서 사용 void *pv; pv = &num1; (int*)pv + 1; pv = &ch; printf("%c\n", *(char*)pv); pv = arr; printf("%d\n", ((int*)pv)[0]); } 2018. 4. 28.
18_함수포인터 #include #include void fun1(); void fun2(); void fun3(); void fun4(); void fun5(); int main() { fun5(); return 0; } //함수의 이름은 주소이다. void fun1() { printf("%d : 0x%p\n", main, main); } void foo() { printf("foo()\n"); } void woo(int n, char ch) { printf("%d : %c\n", n, ch); } int goo(char * str) { printf("%s\n", str); return sizeof(str); } //함수 포인터 : 함수를 저장하는 포인터(함수의 주소를 저장) void fun2() { // void(*.. 2018. 4. 28.
17_포인터 #include //변수 목적 // 1) 값 // 2) 주소값 //변수의 형태 void exam1(); //1차원 void exam2(); //2차원 void exam3(); //const void exam4(); void main() { exam4(); } void exam4() { const int NUM = 1; int num = 10; int num1 = 20; const int *p = # //? int * const p1 = # //? p = &num1; // ok... //*p = 100; //error... } void exam3() { int num = 1; int arr[2][3] = { 1, 2 }; int(*parr)[3] = arr; int *p; p = arr[2].. 2018. 4. 28.
16_포인터배열 #include //배열의 이름은 주소값이다. //단, 상수이다. void exam1() { int arr[3] = { 1, 2, 3 }; int arr1[3] = { 11, 22, 33 }; // arr = arr1; // 배열의 이름을 L-value에 사용? 불가능... // 배열의 이름은 저장공간을 가리키는 개념이 아니라 // 배열 구조 전체의 주소를 가리키는 개념이다. //============================================================== *arr = arr1[0];// *arr = 11; // *arr은 R-value에 사용? *(arr + 1) = 22; //??? // (*arr) + 1 = ;// 절대 불가능 (*arr) + 1 의 결과는 숫자이.. 2018. 4. 28.
15_배열 #include void exam1(); void exam2(); void exam3(); void main() { exam3(); } void exam3() { //1. 배열 선언 : char type 10개를 저장하는 배열 char arr[10]; //2. 생성된 배열의 크기는 10byte이다. printf("%dbyte\n", sizeof(arr)); //10 //3. 배열 사용 // 4 인덱스 위치에 'c'를 저장 arr[4] = 'c'; printf("%c\n", arr[4]); char ch = arr[4]; // char ch = 'c'; char ch1 = *(arr + 1); //? //반복문과 배열의 관계 //배열에 문자 'A' ~ 'J'까지 저장 for (int i = 0; i < 1.. 2018. 4. 28.
14_함수의인자전달 #include /* 함수의 인자 전달 1) call by value 2) call by reference(address) */ /* void foo(int n, int* pn); void main() { int num = 10; printf("%d\n", num); foo(num, &num); // CV, CA printf("%d\n", num); } void foo(int n, int* pn) { *pn = 2; } */ void foo(char * c1, char * c2) { *c1 = 'A'; *c2 = 'B'; } void main() { char ch = 'a'; char ch1 = 'b'; foo(&ch, &ch1); printf("%c : %c\n", ch, ch1); } 2018. 4. 28.
13_함수실습 #include /* 1) 정수값 2개를 인자로 받아서 합의 결과를 반환하는 my_add 란 함수 구현 2) 문자 1개를 인자로 받아서 대문자인여부를 반환하는 is_bigchar 란 함수 구현 대문자일 경우 1, 소문자일 경우 0 반환 3) 정수값 2개를 인자로 받아서 (단, 첫번째 정수값이 두번째 정수값 보다 작다고 가정) 첫번째 정수값 부터 두번째 정수값까지의 모든 정수의 합을 반환 ex) 3, 5 가 전달되면 3+4+5의 합의 결과 반환 my_sum 4) 2개의 소문자를 인자로 받아서 모두 대문자로 변환시켜 반환 */ int my_add(int n1, int n2); int my_max(int n1, int n2); int is_bigchar(char ch); int my_sum(int n1, in.. 2018. 4. 28.
반응형