목록Programming Language/C (18)
SH1R0_HACKER
#include int main() { int a = 10, b = 20; int* ptr = &a; *ptr = 30; ptr = &b; *ptr = 50; printf("a : %d\n", a); printf("b : %d\n", b); printf("*ptr : %d\n", *ptr); } 각 변수의 주소값이 아래와 같을 때 위 코드를 실행시켰을 경우 출력될 값을 적어보세요. a의 주소값 : 100 b의 주소값 : 200 ptr의 주소값 : 300 [ 출력 값 ] a : b : *ptr : #include int main() { int arr[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; printf("arr : %d\n", arr); for (int i = 3; i < 5..
// 포인터 정리(5) // 포인터 배열 #include void example1() { int arr[3] = { 1, 2, 3 }; int(*ptr_arr)[3] = &arr; // 배열 포인터 선언 int* ptr[3] = { &arr[0], &arr[1], &arr[2] }; // 포인터 배열 선언 for (int i = 0; i < 3; i++) { // 배열 출력 printf("arr[%d] = %d\n",i, arr[i]); } printf("\n"); for (int i = 0; i < 3; i++) { // 배열 포인터 출력 printf("(*ptr_arr)[%d] = %d\n",i, (*ptr_arr)[i]); } printf("\n"); for (int i = 0; i < 3; i++..
// 포인터 정리(4) // 2차원 배열과 배열 포인터 #include void example1() { int arr[2][3] = { {1, 2, 3}, {4, 5, 6} }; printf("sizeof(arr) = %d\n", sizeof(arr)); // 24 printf("sizeof(arr[0]) = %d\n", sizeof(arr[0])); // 12 printf("sizeof(arr[0][0] = %d\n\n", sizeof(arr[0][0])); // 4 // &arr = &arr[0] = &arr[0][0] printf("&arr = %d\n", &arr); printf("&arr[0] = %d\n", &arr[0]); printf("&arr[0][0] = %d\n", &arr[0][0]..
// 포인터 정리(3) // 배열 포인터 #include void example1(); void example2(); void example3(); int main() { printf("예제 1번\n"); example1(); printf("\n"); printf("예제 2번\n"); example2(); printf("\n"); printf("예제 3번\n"); example3(); printf("\n"); } void example1() { int arr[5] = { 11, 22, 33, 44, 55 }; int* ptr = arr; // &arr[0] = arr = ptr printf("&arr[0] = %d\n", &arr[0]); printf("arr = %d\n", arr); printf("p..
#include int main() { int a[5] = { 2, 4, 6, 8, 10 }; int* ptr = &a; for (int i = 0; i < 5; i++) { printf("%d ", *ptr[i]); } } 위의 코드를 실행하려 했더니 오류가 발생한다. 어디가 잘못되었는지 확인하고 수정해보자. #include int main() { int a[5] = { 2, 4, 6, 8, 10 }; int *ptr_a = a; printf("for문 출력 : "); for (int *ptr = a; ptr < a + 5; ptr++) { printf("%d ", *ptr); } printf("\n\n"); printf("*ptr_a + 3 = %d\n", *ptr_a + 3); printf("*(p..
// 포인터 정리(2) // 배열과 포인터와의 관계 #include void example1(); void example2(); void example3(); int main() { printf("예제 1번\n"); example1(); printf("\n"); printf("에제 2번\n"); example2(); printf("\n"); printf("에제 3번\n"); example3(); printf("\n"); } void example1() { int a = 10; int* ptr = &a; printf("&a = %d\n", &a); printf("ptr = %d\n", ptr); printf("ptr+1 = %d\n", ptr + 1); // int형 크기만큼 증가 (4byte) } voi..
// 포인터 정리(1) // 포인터 (pointer) : 변수의 주소를 저장하는 변수 #include void example1(); void example2(); void example3(); void example4(); int main() { printf("예제 1번\n"); example1(); printf("\n"); printf("예제 2번\n"); example2(); printf("\n"); printf("예제 3번\n"); example3(); printf("\n"); printf("예제 4번\n"); example4(); printf("\n"); } void example1() { int a = 20; int* ptr;// 포인터 변수 선언 (자료형 *포인터변수) ptr = &a;// p..
#include int main() { int a = 23; int* ptr = &a; int** double_ptr = &ptr; printf("a = %d\n", a); printf("&a = %d\n\n", &a); printf("ptr = %d\n", ptr); printf("&ptr = %d\n", &ptr); printf("*ptr = %d\n\n", *ptr); printf("double_ptr = %d\n", double_ptr); printf("&double_ptr = %d\n", &double_ptr); printf("*double_ptr = %d\n", *double_ptr); printf("**double_ptr = %d", **double_ptr); } 각 변수들의 주소값이 아래와..
버블정렬 (bubble sort) - 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 #include int main(void) { int temp=0; int a[5]={9,6,7,3,5}; //오름차순으로 정렬 할 배열 for(int i=0;i