Avatar billede MLundager Nybegynder
27. juni 2010 - 23:41 Der er 2 kommentarer og
1 løsning

c++ pointers

jeg har et spørgsmål til c++ pointers jeg læser en c++ guide og
der giver han det her eksemple

#include <iostream>

using namespace std;

int addition(int a, int b)
{ return (a+b); }


int operation(int x, int y, int(*func)(int,int))
{
    int o;
    o = (*func)(x, y);
}

int main()
{
  int a;
 
  a = operation(8, 5, addition);
 
  cout << a << endl;
   
    system("Pause");
    return 0;
}

hvor han bruger pointers til den her int(*func)
hvorfor bruger man pointers der når det stadig virker hvis man bare gør sådan her int(func)?
Avatar billede arne_v Ekspert
28. juni 2010 - 01:09 #1
Fordi det rent faktisk er en pointer, så er der mange som synes at det er mest naturligt at angive det med *.

Mange ved faktisk ikke engang at den kan undlades.
Avatar billede arne_v Ekspert
28. juni 2010 - 01:12 #2
C standarden siger:

Then the definition of g might read
void g(int (*funcp)(void))
{
/* ... */ (*funcp)() /* or funcp() ... */
}
or, equivalently,
void g(int func(void))
{
/* ... */ func() /* or (*func)() ... */
}
Avatar billede arne_v Ekspert
25. juli 2010 - 22:49 #3
OK?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester