Pointers

There are two operators to deal with pointers:

#include <stdio.h>
int main()
{
  /* Declare and initialize an int variable */
  int var = 1;
  /* Declare a pointer to int */
  int *ptr;
  /* Initialize ptr to point to var */
  ptr = &var;
  /* Access var directly and indirectly */
  printf("\nDirect access, var = %d", var);
  printf("\nIndirect access, var = %d", *ptr);
  /* Display the address of var two ways */
  printf("\n\nThe address of var = %d", &var);
  printf("\nThe address of var = %d", ptr);
}

Pointers and Data Types

Declaring and initializing variables
int vi = 122;
char vc = 'a';
float vf = 12.4;

Declaring and initializing pointers
int *p_vi;
char *p_vc; 
float *p_vf;
.............
p_vi = &vi;
p_ch = &vc;
p_vf = &vf;

Arrays and Pointers

int array[100], *p_array;
p_array = array;

Pointer Arithmetic

/* Demonstrates using pointer arithmetic to access */
/* array elements with pointer notation. */
#include <stdio.h>
#define MAX 10
int main()
{
  /* Declare and initialize an integer array. */
  int i_array[MAX] = { 0,1,2,3,4,5,6,7,8,9 };
  /* Declare a pointer to int and an int variable. */
  int *i_ptr, count;
  /* Declare and initialize a float array. */
  float f_array[MAX] = { .0, .1, .2, .3, .4, .5, .6, .7, .8, 9 };
  /* Declare a pointer to float. */
  float *f_ptr;
  /* Initialize the pointers. */
  i_ptr = i_array;
  f_ptr = f_array;
  /* Print the array elements. */
  for (count = 0; count < MAX; count++)
    printf("\n%d\t%f", *i_ptr++, *f_ptr++);
  return 0;
}

Pointers and Functions

/* Passing an array to a function. */
#include <stdio.h>
#define MAX 10
int largest(int x[], int);
int main()
{
  int array[MAX], count;
  /* Input MAX values from the keyboard. */
  for (count = 0; count < MAX; count++)
  {
    printf("Enter an integer value: ");
    scanf("%d", &array[count]);
  }
  /* Call the function and display the return value. */
  printf("\n\nLargest value = %d", largest(array, MAX));
  return 0;
}
/* Function largest() returns the largest value */
/* in an integer array */
int largest(int x[], int y)
{
  int count, biggest = -12000;
  for ( count = 0; count < y; count++)
  {
    if (x[count] > biggest)
      biggest = x[count];
  }
  return biggest;
}

/* Passing an array to a function. Alternative way. */
#include <stdio.h>
#define MAX 10
int largest(int x[]);
int main()
{
  int array[MAX+1], count;
   /* Input MAX values from the keyboard. */
  for (count = 0; count < MAX; count++)
  {
    printf("Enter an integer value: ");
    scanf("%d", &array[count]);
    if ( array[count] == 0 )
      count = MAX;               /* will exit for loop */
  }
  array[MAX] = 0;
  /* Call the function and display the return value. */
  printf("\n\nLargest value = %d", largest(array));
  return 0;
}
/* Function largest() returns the largest value */
/* in an integer array */
int largest(int x[])
{
  int count, biggest = -12000;
  for ( count = 0; x[count] != 0; count++)
  {
    if (x[count] > biggest)
      biggest = x[count];
  }
  return biggest;
}

Pointers and Strings

About this document ...

This document was generated using the LaTeX2HTML translator Version 96.1 (Feb 5, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 -html_version 3.0 c5.tex.

The translation was initiated by Vijay & on Thu Feb 19 11:48:15 EST 1998


Vijay &
Thu Feb 19 11:48:15 EST 1998