找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2315|回复: 3
收起左侧

指针语法

[复制链接]
ID:51090 发表于 2014-9-17 14:26 | 显示全部楼层 |阅读模式
                        # include
int main (void)
{
int * p; //p 是变量的名字,int*表示p变量存放的是int类型变量的地址,即p存放的是地址,地址类型是int类型的地址
int j,i = 3;
p = i; //error类型不一致,因为p存放的是地址,而i不是地址,类型不符合,不可以
p =&i; //OK 将i的地址赋给p
p = 55; //也不可以,理由同上

j = * p;  //j =3   *p就是以p的内容为地址的变量,p的内容是i的地址,就是以i的地址为地址的变量,就是i
return 0;
}


回复

使用道具 举报

ID:51090 发表于 2014-9-17 14:26 | 显示全部楼层
# include

int main (void)
{
int * p;
int i = 5;

p = &i;
printf ("%d\n",*p);
return 0;
}
回复

使用道具 举报

ID:51090 发表于 2014-9-17 14:26 | 显示全部楼层
常见错误:


// printf ("%d\n",*q);
//}

//主函数里面输出的值永远是主函数所调出的a,b

# include

void huhuan_2(int * p, int *q)//形参名字可以不写
{
//指针使用必须要注意类型等价
//一个变量一旦赋值过后,即地址确定了,根据电脑的原理,一旦变量的地址确定了,就不可互换了,所以不可以换地址

int t; //不可以定义为int * t;
t = *p;
*p = *q;
*q = t;

}
int main (void)
{
int a = 3;
int b = 5;

huhuan_2(&a, &b);//这个往调用函数里面传递的格式是p = &a 而不是*p = &a, 永远记住int * p  的变量名是p,int *是类型,值传到的位置是名字,而不是类型
// huhuan_2(a, b)//error

printf ("a = %d  b = %d",a,b);
return 0;
}
回复

使用道具 举报

ID:91533 发表于 2015-11-28 00:04 | 显示全部楼层
好东西,解释的好清楚,我看懂了一点点。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表