C 3

C | 변수의 할당 위치 (동적할당)

C언어 거의 하지도 않는데 조교 업무 때문에 C언어를 계속 보고 검색하다 보니까 확실히 파이썬과는 다른 재미가 있는 것 같다ㅎㅎ 새내기 때 지금 교수님 같은 분한테 수업을 들었다면 C언어를 지금보다 조금 더 잘하지 않을까 싶은 생각이 들 정도로 교수님도 열정적이시고 그 만큼 학생분들의 질문도 어렵다......ㅎㅎ char *getPI(void){ char PI[20]; strcpy(PI, "3.141592653589"); return PI; } int main(void){ char *pistr; pistr = getPI(); printf("%s\n", pistr); return 0; } 짠! 위의 코드에서는 어떤 문제가 있을까? 위의 코드르 실행해보면 쓰레기값이 출력될 것이다. 왜 그럴까? 바로 [cod..

C | array-to-pointer conversion of function parameter type adjustment (배열과 포인터)

조교 업무를 하다가 처음 알게 된 사실이 있다! C언어에서 일반적으로 배열과 포인터는 동일하다고 설명하고, 나도 지금까지 그냥 배열과 포인터가 동일하다고만 생각하고 있었다. 하지만 배열은 배열이고 포인터는 포인터라는 것..! #include #include #include void fff(int array[]); int main() { int data[5] = { 0, 1, 2, 3, 4 }; printf("%d %d\n", sizeof(data), sizeof(data[0])); fff(data); printf("\n\n"); return 0; } void fff(int array[]) { int temp; int num = sizeof(array) / sizeof(array[0]); printf("%..

C | Call by value와 Call by reference

낯선 듯 친숙한 call by value와 call by reference! 사실 코딩을 배웠다 하면 누구든 한 번은 call by value나 call by reference를 들어봤을 것이다. 요새 하도 파이썬만 봐서 C언어를 거의 까먹는 느낌이라 한 번 정리해보려고 한다! C언어 조교를 같이 하고 있는데 곧 포인터 진도를 나갈 것 같아서 얼른 다시 봐야할 것 같다..ㅎ.. 사실은 이것도 까먹어서 다시 검색해보고 정리하는 중이다...ㅎ 포인터 call by value와 call by reference를 정리하기 전에 [yellow]"포인터"[/yellow] 개념을 알아야한다. C언어에서 변수를 선언할 때 보통 [code] int a = 0; [/code] 이런식으로 작성하는데, 포인터 변수를 선언하기..