Welcome to MSDN Blogs Sign in | Join | Help

What are pointers?

Today, my young nephew came to me with the question "What is that thing called 'pointers' in the C programming language?" from his first programming course at school.

The time has come to see if he was born with that part of the brain that understands pointers. After some minutes of explanation, I presented to him the following 4 programs asking him "What is displayed in the screen for each program?"

He answered correctly all of them, and I concluded that such part of the brain is present indeed.

Program 0:

#include <stdio.h>

void main()
{
 char n;
 n=65;
 printf("%d\n",n);

 char* p;
 p= &n;

 printf("%d\n", *p );

 char* g=p;
 printf("%d\n", *g );
 
 *g=14;

 printf("%d\n", n );
 printf("%d\n", *p );
 printf("%d\n", *g );
}
Program 1:
#include <stdio.h>

void f(int x)
{
  x= x * 2;
}

void g(int* x)
{
  *x= (*x) * 2;
}

void main()
{
  int n=30;

  f(n);
  printf("n=%d\n",n);

  g(&n);
  printf("n=%d\n",n);
}
Program 2:
#include <stdio.h>

float* f(float* x, float* y)
{
  *x= (*x) * (*y);
  return y;
}

void main()
{
  float n = 4;
  float m = 2;
  float* r = f(&n,&m);
  printf("result=%f \n", n);
  printf("result=%f \n", *r);
}
Program 3:
#include <stdio.h>

char f(char* x, char y)
{
  char result=( (*x) + y ) / 2;
  return result;
}

char* g(char* s, char* t)
{
  *s = *t;
  return s;
}

void main()
{
 char a=65;
 char b=90;
 char c=f(&a,b);
 printf("%c \n", c);
 void* n=(void*)g(&a, &b);
 printf("%x \n", n);
}

Published Saturday, September 16, 2006 7:46 PM by marcod
Filed under:

Comments

# re: What are pointers?

I've always found it strange that pointers simply make sense for some people, and others struggle with them no matter how long they try. Wonderful that your nephew is one of those who "gets it" :-)
Saturday, September 16, 2006 11:35 PM by TimMisiak

# re: What are pointers?

if one variable contains the address of other variable,the first variable is said point to the second
Monday, September 18, 2006 3:58 AM by tarun kumar
Anonymous comments are disabled
 
Page view tracker