Académique Documents
Professionnel Documents
Culture Documents
CSCI 230
Pointers
Call-by-Reference
Dale Roberts, Lecturer
Computer Science, IUPUI
E-mail: droberts@cs.iupui.edu
Dale Roberts
* Operator
Used as formal parameter for variable inside of function
void double_num ( int *number )
{
*number = 2 * ( *number );
}
Dale Roberts
/*
*/
4
5 #include <stdio.h>
6
7 int cubeByValue( int );
/* prototype */
Function prototype
8
9 int main()
10 {
11
Initialize variables
int number = 5;
12
13
14
15
Call function
16
17
return 0;
18 }
19
20 int cubeByValue( int n )
Define function
21 {
22
return n * n * n;
23 }
The original value of number is 5
The new value of number is 125
Dale Roberts
Program Output
number
int main()
{
int number = 5;
number = cubeByValue( number );
}
number
int main()
{
int number = 5;
number = cubeByValue( number );
}
int main()
{
int number = 5;
number = cubeByValue( number );
}
int main()
{
int number = 5;
number = cubeByValue( number );
}
number
5
number
5
number
125
Dale Roberts
n
undefined
n
5
n
5
n
undefined
n
undefined
4
5 #include <stdio.h>
Function prototype
6
7 void cubeByReference( int * );
8
9 int main()
10 {
11
/* prototype */
int number = 5;
Initialize variables
12
13
14
cubeByReference( &number );
15
Call function
16
17
18 }
return 0;
19
20 void cubeByReference( int *nPtr )
Define function
21 {
22
23 }
The original value of number is 5
The new value of number is 125
Program Output
Dale Roberts
int main()
{
int number = 5;
cubeByReference( &number );
}
number
5
nPtr
undefined
int main()
{
int number = 5;
cubeByReference( &number );
}
number
5
n
void cubeByReference( int *nPtr )
{
*nPtr = *nPtr * *nPtr * *nPtr;
}
nPtr
address of
number
int main()
{
int number = 5;
cubeByReference( &number );
}
number
125
Dale Roberts
nPtr
address of
number
const pointers
1)
COMPUTER MEMORY
2)
Ptr
Dale Roberts
x3
case 3
myPtr1
x2
case
2
case
1
3)
x1
case with
using const
myPtr
myPtr2
non-constant data */
4
5
#include <stdio.h>
6
7
int main()
Declare variables
int x, y;
10
11
12
13
14
15
*ptr = 7;
16
ptr = &y;
17
18
19 }
return 0;
Declare const
pointer to an int
FIG07_13.c:
Error E2024 FIG07_13.c 16: Cannot modify a const object in
function main
*** 1 errors in Compile ***
Dale Roberts
Output