/*
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("\n\n");
printf("%d\n", *ppp);
printf("%d\n", &ppp);
}
运行结果:
2293564
10
2293560
2293564
10
2293556
2293560
2293564
2293552