码迷,mamicode.com
首页 > 其他好文 > 详细

想梳理一下指针

时间:2016-11-06 02:54:32      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:分享   函数   for   com   应该   优先级   最大值   nbsp   return   

(1)运用函数求a,b的最大值并按大到小的顺序输出

int MAX(int a,int b,int *p,int *q)

{

p=&a;//要在主函数中写,原因不清楚。。。反正在这里写答案就说错的,改到主函数就对了,而且只能定义一处主函数或调用函数

q=&b;

if(a<b)

{

int c=a;//反正*p就是a,这不是标准的但是是对的

*p=b;

*q=c;

}

return a;

}

#include <stdio.h>

int main()

{

int MAX(int a,int b,int *p,int *q)

int a,b;

int *P,*q;//应该是int *p=a,*q=b;

max(a,b,p,q);

scanf("%d%d",&a,&d);

printf("%d\n",a);

printf("%d %d",a,b);

return 0;

}

错误代码,改正://

注意:定义时时*p,调用的时候用p;

int *p=&a==int *p; p=&q;

改良版:

技术分享

如果改成全局变量:

技术分享

貌似我吧调用函数放在前面就不行了,还有全局变量最好首字母大写;

突然想起了#define IP 3.14

(2)指针和一维数组

1.a[5]输出

#include <stdio.h>

int main ()

{

int a[5]={0,1,2,3,4};

int *p=a;//注意和前面的区别 int *p=&a;是定义指针p,p为地址,地址就是&a;但真正应该是int *p;int p=&a;但是这里,a代表了a[5]的首地址

for(;p<a+5;p++)

printf("%d",*p);

}

想要输入加输出

技术分享

不知道怎么不对,呜呜呜

我回来改错了

技术分享

要注意指针变量的当前值前面一个已经加到了a+5

改了以下,这样是正确的

貌似也只见到了这个种

技术分享

 典型错误

技术分享

 a是常数不能++;p是变量

改良

技术分享

p++;*p  == *p++ ==*(p++)==a[i++]*和++是同优先级,从右向左,算了,以后分不清顺序,就用括号

 

不早了,明天写

 

想梳理一下指针

标签:分享   函数   for   com   应该   优先级   最大值   nbsp   return   

原文地址:http://www.cnblogs.com/liujunli/p/6034533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!