标题: 指针语法 [打印本页]

作者: xiaojuan    时间: 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;
}



作者: xiaojuan    时间: 2014-9-17 14:26
# include

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

p = &i;
printf ("%d\n",*p);
return 0;
}
作者: xiaojuan    时间: 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;
}

作者: 15年的51菜鸟    时间: 2015-11-28 00:04
好东西,解释的好清楚,我看懂了一点点。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1