포인터 연습: ForEach

1446 단어
047: 포인터 연습: ForEach 총 시간 제한: 1000ms 메모리 제한: 65536kB 설명 프로그램을 공백으로 채우고 출력 결과는 다음과 같습니다.
1,4,9,16,25, h,e,l,l,o,!,
#include 
using namespace std;

void ForEach(void * a, int width, int num,
//          
)

{
    for(int i = 0;i < num; ++i) 
        f((char*)a+width*i);
}

void PrintSquare(void * p)
{
    int * q = (int*)p;
    int n = *q;
    cout << n * n << ",";
}
void PrintChar(void * p) {
    char * q = (char*)p;
    cout << *q << ",";
}
int main()
{
    int a[5] = {1,2,3,4,5};
    char s[] = "hello!";
    ForEach(a,sizeof(int),5,PrintSquare); 
    cout << endl;
    ForEach(s,sizeof(char),6,PrintChar);
    return 0;
}

입력 무출력 1,4,9,16,25,h,e,l,l,o,!,샘플 입력 무샘플 출력 1,4,9,16,25,h,e,l,l,o,!,코드
#include 
using namespace std;

void ForEach(void * a, int width, int num,
void (*f)(void *)//          
)

{
    for(int i = 0;i < num; ++i) 
        f((char*)a+width*i);
}

void PrintSquare(void * p)
{
    int * q = (int*)p;
    int n = *q;
    cout << n * n << ",";
}
void PrintChar(void * p) {
    char * q = (char*)p;
    cout << *q << ",";
}
int main()
{
    int a[5] = {1,2,3,4,5};
    char s[] = "hello!";
    ForEach(a,sizeof(int),5,PrintSquare); 
    cout << endl;
    ForEach(s,sizeof(char),6,PrintChar);
    return 0;
}

좋은 웹페이지 즐겨찾기