Language/C (3) 썸네일형 리스트형 [C] 함수 포인터 Function Pointers 포인터는 메모리상의 어떠한 위치를 가리킬 수 있다. 즉, 실행가능한 코드의 시작점도 가리킬 수 있다. 함수를 가리키는 포인터인 함수포인터는 실행가능한 코드의 시작점을 가리킨다. 함수포인터는 배열에 저장되거나 다른 함수의 인자로 쓰일 수도 있다. 함수 포인터 선언 return_type (*func_name)(parameters) e.g. #include int sum(int a, int b){ return a+b; } int main(){ int (*funptr)(int, int); //포인터 선언 funptr = sum; //포인터 할당 int res = funptr(5, 8); } 함수 포인터 배열 이용 - 조건문 대신 사용 다음과 같이 주어진 입력에 따라 조건문처럼 함.. [C] 문자열 사용법 char str_name[str_len] = "This is a string"; 끝애 자동으로 '\0' 추가됨 문자열 입력받기 scanf() : 형식지정자 이용 scanf("%s", my_string); //& 안쓴다. 문자열 이름 자체가 포인터와 같은 역할 gets() : 엔터 키가 눌릴 때까지 입력받음 gets(my_string); fgets() : 특정 길이의 문자열 읽어옴 buffer overflow 방지 newline character도 저장(gets()와의 차이점) fgets(my_string, 50, stdin); stdin : standard input(키보드) 문자열 출력 printf() puts() : 줄바꿈 puts(str); fputs() fputs(str, stdout); .. 배열 배열 포인터 여러 표현 방식 *(ptr+i) == ptr[i] == i[ptr] == *(i+ptr) //3번째는 이론으로만 알고 쓰지는 X ptr == &ptr[0]; *ptr == ptr[0]; ptr+1 == ptr에 sizeof(*ptr)을 더한 값 배열 포인터 선언 int main(){ int arr[3] = {1,2,3}; int(*ptr_arr)[3];//길이 3인 int형 배열을 가리키는 포인터를 선언 ptr_arr = &arr; } 예제 int main(){ int arr[2][3]={1,2,3,4,5,6}; for(int(*row)[3] = arr; row < arr+2; row++){ for(int *col = *row; col 이전 1 다음