오늘은 저번에 이어 C++포인터 고급부분과 const예약어를 공부해보겠습니다.
포인터 배열을 전달받는 함수
포인터 배열의 시작주소는 포인터의 포인터 즉, 2차원 포인터이므로 포인터배열을 매개변수로 하는 함수의 형식 매개변수 자료형은 2차원 포인터여야한다.
포인터배열을 매개변수로 사용하는 함수
#include<iostream>
using namespace std;
void print_String(char** pptr, int n) {
for (int i = 0; i < n; i++) {
cout << pptr[i] << endl;
}
}
void main() {
char* ptr[3] = {"tiger","rabbit","cow"};
print_String(ptr, 3);
}
결과

매개변수가 있는 main함수의 형태
#include<iostream>
using namespace std;
void main(int argc, char* argv[]) {
cout << "명령행에입력한 문자열의 개수=" << argv << endl;
cout << ">>명령행에 입력한 문자열<<" << endl;
for (int i = 0; i < argc; i++) {
cout << "argv[" << i << "]=" << argv[i] << endl;
}
}
소스를 입력하고 프로젝트->~~~속성->

디버깅-> 명령인수 입력
출력

함수를 가르키는 포인터
우선 함수의 포인터를 선언하는 방법은
int (*pf)(int);
pf는 함수의 주소값을 담는 포인터 변수
1. 정수 형태의 매개변수 하나를 갖고
2. int형을 결과값으로 되돌린다.
함수포인터를 사용해서 함수 호출하기
#include<iostream>
using namespace std;
void (*pf)(void);
void one() {
cout << "one" << endl;
}
void two() {
cout << "two" << endl;
}
void three() {
cout << "three" << endl;
}
void main() {
pf = one;
pf();
pf = two;
pf();
pf = three;
pf();
}

함수 포인터를 사용해서 상황에 따른 서로 다른 함수 호출하기
#include<iostream>
using namespace std;
void (*pf)(void);
void one() {
cout << "one" << endl;
}
void two() {
cout << "two" << endl;
}
void three() {
cout << "three" << endl;
}
void main() {
int num;
while (1) {
cout << "0부터 3사이의 숫자를 입력하되 끝내려면 0입력=>";
cin >> num;
switch (num) {
case 0:cout << "종료" << endl;
return;
case 1: pf = one;
pf();
break;
case 2:pf = two;
pf();
break;
case 3:pf = three;
pf();
break;
}
}
}

이상으로 포스팅 마무리하겠습니다.
'C#' 카테고리의 다른 글
| [자료구조/C++]백준 10828 스택 풀기 (0) | 2026.01.09 |
|---|---|
| [C++] 1차원 배열과 포인터 / 2차원배열과 2차원포인터 공부하기 (1) | 2026.01.06 |
| [C++] C++문법 공부하기 포인터고급부분/const 예약어-1 (1) | 2026.01.01 |
| [C++문법] C++ 구조체 / 구조체 포인터 /공용체와열거형/typedef 공부하기 -2 (0) | 2025.12.30 |
| [C++문법] C++ 구조체 / 구조체 포인터 /공용체와열거형/typedef 공부하기 -1 (0) | 2025.12.27 |