首页 > 代码库 > 指针学习

指针学习

/*

DATE:2014/12/31

FOR :learing the C point

TOOL:Sublime Text 3

理解1:程序逻辑对地址符的操作都是对地址符中对应的数据的操作

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void  func0() ;
void  func1() ;
void  func2() ;
void  func3();
void  func4();


char *my_itoa(int num,char *str,int radix);


int main(void)
{
      // func0();
      // func1();
      // func2();
      // func3();
      func4();
      // func5();
      return 0;
}

void  func4()

{
      int a = 10;//定义整数(地址符:a,数据:10)
      int *p=&a;//定义指针(地址符:p,数据:地址符a对应的内存地址)
      // int *pp=&p;//cannot convert ‘int**‘ to ‘int*‘ in initialization
      int *pp=p;//定义指针(地址符:pp,数据:指针p中的数据,即地址符a对应的内存地址)
      int **ppp=&p;//定义指针(地址符:ppp,数据:地址符p对应的内存地址)

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

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


      printf("\n\n");


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

      printf("%d\n",  &pp);


      printf("\n\n");


      printf("%d\n",  ppp);
      printf("%d\n",  *ppp);
      printf("%d\n",  &ppp);

}

运行结果:


2293564
10
2293560




2293564
10
2293556




2293560
2293564
2293552



指针学习