注意:对指针进行加减操作 比如++ 或--之后,指针的值并不是加1或减1,而是根据数据类型字节数的不同移动了不同的字节数

1.指针是一个变量,可以表示数据(整型浮点型字符型)以及函数在内存中的位置。

2.声明指针的格式 type * var-name 类型是指针所指向的数据的类型。

3.对一个数据取指针 & 符号,取出后付给 指针 var-name 

4.想要得到指针所指向的内容用 *var-name

实例1:声明指针:

 

int    *ip;    /* 一个整型的指针 */
double *dp;    /* 一个 double 型的指针 */
float  *fp;    /* 一个浮点型的指针 */
char   *ch     /* 一个字符型的指针 */

 

实例2 :声明指针 、取指针 、访问指针所指对象

 

#include <stdio.h>

int main ()
{
   int  var = 20;   /* 实际变量的声明 */
   int  *ip;        /* 指针变量的声明 */

   ip = &var;  /* 在指针变量中存储 var 的地址 */

   printf("Address of var variable: %x\n", &var  );

   /* 在指针变量中存储的地址 */
   printf("Address stored in ip variable: %x\n", ip );

   /* 使用指针访问值 */
   printf("Value of *ip variable: %d\n", *ip );

   return 0;
}

实例3:递增一个指针

 

 

#include<stdio.h>constint MAX =3;int main (){intvar[]={10,100,200};int  i,*ptr;/* 指针中的数组地址 */
   ptr =var;for( i =0; i < MAX; i++){

      printf("Address of var[%d] = %x\n", i, ptr );
      printf("Value of var[%d] = %d\n", i,*ptr );/* 移动到下一个位置 */
      ptr++;}return0;}

打印结果:

 

 

Address of var[0]= bf882b30
Value of var[0]=10Address of var[1]= bf882b34
Value of var[1]=100Address of var[2]= bf882b38
Value of var[2]=200

实例4:指针的遍历

 

 

#include<stdio.h>constint MAX =3;int main (){intvar[]={10,100,200};int  i,*ptr;/* 指针中第一个元素的地址 */
   ptr =var;
   i =0;while( ptr <=&var[MAX -1]){

      printf("Address of var[%d] = %x\n", i, ptr );
      printf("Value of var[%d] = %d\n", i,*ptr );/* 指向下一个位置 */
      ptr++;
      i++;}return0;}

打印结果:

 

Address of var[0]= bfdbcb20
Value of var[0]=10Address of var[1]= bfdbcb24
Value of var[1]=100Address of var[2]= bfdbcb28
Value of var[2]=200

 


 

 posted on 2016-12-09 22:31  ChaseForFuture  阅读(196)  评论(0编辑  收藏  举报