Skip to main content

Pointer to Function C and C++

Hi this is my first technical post , really i find this topic very interesting and i like it .
actually I worked now on good project which utilize my Genetic algorithms , neural networks and parallel computing knowledge . when searching i hit in this topic .

pointers to function :
who should read this article are computer science students and programing Students
introduction :
 you can write good code without knowing any thing about pointers , but if you used pointers you will write all your codes with pointers , it is best invention after electricity , it will attract you , and you will feel the infinite happiness  .

what is pointer ?
you know int , float , double you can think on this data type as box which contain some value . but pointers is different it stores the reference of this value -memory address - then you can access the value in this pointer by dereference it .

declare pointer int *ptr;
dereference pointer *ptr ; but take care you have to assign value to the pointer before dereference it to avoid memory explosion .

pointers are amazing in passing arrays to functions .
are amazing two to create dynamic arrays , it can be deleted and free its memory .

about today topic :
Arrays can used to pass function as an argument for another function .
problem statement :
in math you can apply this equation using the two functions f &g  f(g(x))  or more complex than this one .
the problem appear if we need to do some operation  on the same data items and test results , e.g select the best function it is famous on neural networks , classifier and genetic programing .

for example :
write a C++ or C function which take a function as argument and 2 data items x and y . the argument function either addition or subtraction .

solution :

1-#include
2-using namespace std;

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

5-int subtraction (int a, int b)
6-{ return (a-b); }

7-int operation (int x, int y, int (*functocall)(int,int))
8-{
9- int g;
10-  g = (*functocall)(x,y);
11-  return (g);
12-}

13-int main ()
14-{
15-  int m,n;
16-  int (*minus)(int,int) = subtraction;

17-  m = operation (7, 5, addition);
18-  n = operation (20, m, minus);
19-  cout <
20-  return 0;
21- }

in the line no.7 the third parameter for the function operation
int (*functocall)(int,int)

int -> is the return type of the function  .

*functocall->pointer to function .

(int,int)-> the arguments of the function both type int .
in the line no.17 and line no. 18 we call the function and put the name of the two functions addition and minus respectively

by the end of this article i hope you learn new thing .

yours,
Ahmed Ghazey


reference : http://www.cplusplus.com/doc/tutorial/pointers/

Comments

Popular posts from this blog

DevExpress C# Chart Tutorial

Hello , this blog post about Charting in DevExpress , I faced many problems I visited hundreds of pages to solve this problems , actually it was the first time I use DevExpress Charts, Work is not like school or university , in school if you don't know thing you can learn it any time you want , in work you have to do today task yesterday, I like to share my knowledge and skills with you , I hope this Post help you . // clear series on chart  chart.Series.Clear(); // clear Titles of chart chart.Titles.Clear(); // legend alignment  chart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center; chart.Legend.AlignmentVertical = LegendAlignmentVertical.Bottom; chart.Legend.Direction = LegendDirection.LeftToRight; // creating series // series view Type example Line DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series("series name ", ViewType.Line); // add title  DevExpress.XtraCharts.ChartTitle chtTitle = new DevExpress.XtraCharts.Cha...

Designing Entity Relationship Diagram (ERD)

Al Salmo Aliko . Hello, in this post I'll discuss with you how to design good Entity Relationship Diagram ERD . this article for: IT Students learning about database. you are having difficulties in creating ERD. you are developer that need help in database design.   let's ask ourselves Why good database design is good ? or why we need ERD?         when I started programming Eng / Eman Ahmed was my First teacher, she said you must write your code with pen, and now I told you good database design start with paper and pen or in technological terms start with ERD, ERD is the model which shows logical layout of your database. let's List some advantages of good database design : very low or no redundant data is stored.  supporting planed or unplanned queries. good design easy to maintain and modify. from first glance you can understand it. an ERD consist from Entities and relationships between them; there exist...

Sigmoid Function

Hello all, Sigmoid Function or Logistic Function , it is used in Machine Learning problems for the purpose of learning (Neural network ) on curves. its range between ]0,1[ it is horizontal asymptotic on 0 and 1, because of its range between 0 and 1 it is used in classification using threshold for example if we take 0.5 as a threshold  values greater than 0.5 are considered Ones and  values less than or Equal  0.5 considered 0. it has the following formula :   and it shape as following : from wikipedia  so it accept differentiation over its domain unlike Step Function. differentiation of sigmoid function :  I finished the article , i hope you understand it . Thanks for your time and effort if you like it share and follow me :)