1 指针代表内存地址 内存地址可以用指针表示
#include<stdio.h> //相当于java的import io包
#include<stdlib.h> //相当于java的lang包 包含c的一些基本运算
main(){ //程序入口
int i =10;
//指针的声明 1 在一种数据类型的后面加一个* 就代表这种数据类型的指针 与&i i的地址
int* p = &i;
printf("p====%x\n",p); //注意1 :地址的数据类型 %x ;p====62fe44
printf("p====%#x\n",p); //注意2 :地址一般16进制0x开头%#x ;p====0x62fe44
printf("i===%d",*p); 2 在一个指针的前面加* 就代表取出这个指针地址对应的内容
}
2 指针加强1 (一级指针)
#include<stdio.h> //相当于java的import io包
#include<stdlib.h> //相当于java的lang包 包含c的一些基本运算
main(){ //程序入口
printf("read go....\n");
int time = 60;
while(time>0){
time--;
Sleep(1000); //注意: 睡眠1s钟---C中没有子线程 主线程
printf("time====%d\n",time);
printf("time的地址==%#x\n",&time); //地址不变
}
printf("恭喜您过关");
}
#include<stdio.h> //相当于java的import io包
#include<stdlib.h> //相当于java的lang包 包含c的一些基本运算
main(){ //程序入口
int i = 10 ;
int* p = &i;
printf("i====%d\n",i);
printf("p====%#x\n",p);
//问题1:修改i 不会改变地址值
i=100;
printf("i == %d\n",i);
printf("p===%#x\n",p);
//问题2:修改p的值不会影响i;
int j=20;
p = &j;
printf("i=====%d\n",i);
printf("p====%#x\n",p);
//问题3:修改i 会影响*p;
i=200;
printf("i===%d\n",i);
printf("p====%#x\n",p);
//问题4:修改*p 会影响i;
*p = 188;
printf("i===%d\n",i);
}