黑马程序员技术交流社区
标题: 今天学的指针,不是很明白,请大家帮我看看有错的地主吗?? [打印本页]
作者: sxakljf 时间: 2015-6-29 23:41
标题: 今天学的指针,不是很明白,请大家帮我看看有错的地主吗??
#include<stdio.h>
int main (){
int a=8;
int *p=&a; //p取a的地址或着说p指向了a的地址
int **b=&p; //*b取p的地址或着说b指向了p的地址
if (p==&a){
printf("%p\n",&a); //指针变量p保存的地指针是a的地址
printf("%p\n",p); //指针变量p保存的地指针是a的地址
}
if (*p==a){
printf("%d\n",a); //*p变量指向的地址对应内存空间是a值.
printf("%d\n",*p); //*p变量指向的地址对应内存空间是a值.
}
if (b==&p){ //b中保存的地址与p的地址是对应的.
printf("%p\n",&p);
printf("%p\n",b); //b中保存的地址与p的地址是对应的.
}
if (*b==p){
printf("%p\n",*b); //*b指向的值,就是指针变量p存储的值
printf("%p\n",p); //*b指向的值,就是指针变量p存储的值
}
if (**b==a){
printf("%d\n",**b); //**b指向的值,就是变量a的值,*b指向的值,就是指针变量p存储的值,*p变量指向的地址对应内存空间是a值
printf("%d\n",a);} //**b指向的值,就是变量a的值,*b指向的值,就是指针变量p存储的值,*p变量指向的地址对
if (&**b==&a) {
printf("%p\n",&**b); //取&**b的地址实际上是取&a的地址
printf("%p\n",&a);}
if (*b==&a){
printf("%p\n",*b);
printf("%p\n",&a);
}
return 0;
}
作者: 丁铭检 时间: 2015-7-1 19:39
看到二级指针就头发晕。。。
作者: aludiba 时间: 2015-7-2 15:50
没错 写的很到位 学习了
作者: slj900926 时间: 2015-7-2 18:20
指针是c里边最绕的,多看看
作者: slj900926 时间: 2015-7-2 18:22
指针是基础班最绕的,多看看
作者: 李雄峰 时间: 2015-7-2 19:52
指针太灵活了,但是用的多了,多敲代码也就记住了
作者: 1115302782 时间: 2015-7-2 20:18
总结的很好!
作者: 18678927239 时间: 2015-7-2 21:01
不错 学习了 顶顶顶顶顶
作者: Thomas-王 时间: 2015-7-3 13:15
二级指针..我也痛苦中
作者: 弥修斯 时间: 2015-7-3 13:46
二级指针 是这样的:“@#¥¥……&##@……##*¥(&¥@%¥#”
学习中……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |