26. august 2008 - 22:04
Der er
6 kommentarer og 1 løsning
Pointere og Funktioner
Nogen som kan gennemgå de væsentligste aspekter af anvendelse af pointere i forbindelse med funktioner?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
26. august 2008 - 22:15
#1
Brug af almindelige pointere i funktioner eller brug af pointere til funktioner ?
26. august 2008 - 22:20
#2
brug af pointere til funktioner.
26. august 2008 - 22:35
#3
En pointer til en funktion er simpelthen adressen paa en funktion gemt i en variabel. Jeg har et lille eksempel fra lageret: #include <stdio.h> #include <stdlib.h> typedef void (*fptr)(); void f1() { printf("f1\n"); } void f2() { printf("f2\n"); } void f3() { printf("f3\n"); } void f4() { printf("f4\n"); } int main() { fptr f[] = { f1, f2, f3, f4 }; int i; srand(12345); for(i=0;i<10;i++) { f[rand() % 4](); } return 0; }
26. august 2008 - 22:37
#4
typedef void (*fptr)(); definerer fptr til en type af pointer til funktion som returnerer void og som ingen argumenter har. fptr f[] = { f1, f2, f3, f4 }; laver et array af fptr med 4 elementer som peger paa hver sin funktion f[rand() % 4](); kalder en tilfaeldig af funktionerne VIGTIGT: der er mange andre sammenhaenge hvor man bruger pointer til funktion dette var kun en af dem
26. august 2008 - 22:42
#5
Et andet eksempel denne gang C++ fra lageret er maaske mere relevant: #include <iostream> using namespace std; double f1(double x) { return x - 10; } double f2(double x) { return x * x - 25; } const double SMALL = 0.0000001; typedef double (*fptr)(double x); double solve(fptr f) { double xlast = 0; double x = 1; while(fabs(x-xlast)>SMALL) { xlast = x; x = x - f(x) / ((f(x+SMALL/2)-f(x-SMALL/2))/SMALL); } return x; } int main() { cout << "x - 10 = 0 => x = " << solve(f1) << endl; cout << "x * x - 25 = 0 => x = " << solve(f2) << endl; return 0; } [koden bruger Newtons metode til at finde nul punkter]
26. august 2008 - 23:30
#6
1ooo mange tak Arne!! :-) Sidste eksempel kan jeg bedst forstå!
27. august 2008 - 02:29
#7
så smider jeg et svar
Kurser inden for grundlæggende programmering