Computer Programming For Beginners - C++, Pointers and Functions
By Sergey Skudaev
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Pointers
There is also type of variables that hold not a value it-self, but an address where this value is stored. This type of variables is called references or pointers. What is address? Run this simple code for illustration.
#include<iostream.h>
int main(void)
{
int a = 5; //an integer a
int *b = &a; //pointer to address of a
*b=10;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
return 0;
}
Command prompt window displays:
a=10
b=0x0065FDF4
Press any key to continue
Why output displays that a=10? In the first line of code we assign 5 to "a" variable. Because in line *b=10 we assigned 10 to "b" pointer. Since "b" holds the address of variable "a", system assign 10 to the variable, which address is "b" (0x0065FDF4)
How to understand function?
In header file in switchnumbers.h type:
void switch_by_reference (int &x, int &y);
void switch_by_value(int x, int y);
In switchnumbers.cpp file type:
#include<iostream.h>
#include "switchnumber.h"
void switch_by_reference (int &k, int &n)
{
int temp=0;
temp=k;
k=n;
n=temp;
cout<<"Values inside switch_by_reference function:"<<endl;
cout<<"k="<<k<<endl;
cout<<"n="<<n<<endl;
}
void switch_by_value(int x, int y)
{
int temp=0;
temp=x;
x=y;
y=temp;
cout<<"Values inside switch_by_value function:"<<endl;
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
}
In main.cpp file type:
#include<iostream.h>
#include "switchnumber.h"
int main(void)
{
int a = 5;
int b = 9;
cout<<"Initial values:"<<endl;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"Call switch by reference function..."<<endl;
switch_by_reference(a,b);
cout<<"after switch by reference:"<<endl;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"Call switch by value function..."<<endl;
switch_by_value(a,b);
cout<<"after switch by value:"<<endl;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
return 0;
}
Run this code and you will get output:
Initial values:
a=5
b=9
Call switch by reference function...
Values inside switch_by_reference function:
k=9
n=5
after switch by reference:
a=9
b=5
Call switch by value function...
Values inside switch_by_value function:
x=5
y=9
after switch by value:
a=9
b=5
Press any key to continue
When you pass parameters by reference, you pass parameters (a and b) addresses and system assign new values to addresses. As a result the values of the initial variables (a and b) are switched.
When you pass parameters by value, system copies parameters (a and b) values to function local variables (x and y). As a result local variable values ( x and y ) inside the function are changed, but initial variables (a and b) that were declared outside the function are not changed. Before calling switch by value function "a" was equal 9 and "b" was equal 5. After this call, "a" still equals 9 and "b" still equals 5.
It is very important to understand the difference between passing parameters by reference and passing parameters by value.
<< PART I - Data Type >> PART III - Variable Scope
Please rate the tutorial
Learn SQL Programming By Examples [Kindle Edition]2.99
Learn PHP Programming by Examples [Kindle Edition] $2.99
Learn Visual Basic 6.0 [Kindle Edition] $1.99
How to Build Your Own Web Site from Scratch [Kindle Edition] $1.49
New-trip.com website source code
| Comments | |
|---|---|
- Home
- pointer
- Batch Files
- Java Properties
- Form Validation
- Display Image PHP
- Upload File PHP
- phpMyAdmin
- Environment Variables
- Delete Trojan horse
- C ++ Code Examples
- Start C++
- C ++ Continue
- C ++ Pointer
- Variable Scope
- Linked List
- Bubble Sort
- Two Bubble Sort
- Insertion Sort
- Selection Sort
- Two Selection Sort
- Database Design
- Password Keeper
- MySQL and Excel
- Learn MySQL
- Learn PHP
- Learn Visual Basic
- Learn Java
- Web Site Tips
- User_Auth. Demo
- Merge Bin Sort
- Advertise here
- Using Twitter
- Site map
- Registration
Web programming Tips