您的位置:首页 > 其它

指针-----希望对大家有用

2010-08-10 10:13 330 查看
指针变量
1、观察表示指针的内容,大多数现代计算机用字节来分隔内存,每个字节可以储存8位信息。内存为 16MB的机器拥有16777216个字节,那么可以认为作为地址数的范围是0~n-1.
2、程序中每个变量占有一个或者多个内存字节,把第一个地址称为是变量的地址。如图:变量i占有的 字节从地址2000到地址2001,所以变量i的地址是2000:



3、在用变量p存储变量i的地址时,我们说成是p“指向”i,换句话说,指针就是地址,而且指针变量知 识储存地址的变量。

4、int *p 说明P是指向int型对象的指针变量。类似的还有float ,char,double;

5、 & 取地址运算:如果x是变量&x就是x在内存中的地址,如果*p是指针,那么*p表示p当前 指向的对象。int i,*p => p=&i;

6间接寻址运算符:一旦指针便来弄个指向的对象可以用 * 运算符访问储存在对象中的内容例如p指向i、 ,那么可以如下所显示出i的值:printf("%d/n",*p);这个printf会显示i的值,而不是i的地址。

7、例如:j=*&i;/*same as j=i;*/
只要p指向i,那么*p就是i的别名。*p不仅拥有和i同样的值,而且对*p的改变也会改变i的值
注释:不要把间接寻址运算符用于为初始化的指针变量

指针作为实际参数
程序:找出数组中的最大元素和最小原色
#include <stdio.h>
#define N 10
void max_min(int a[], int n, int *max, int *min);
main()
{
int b
,i ,big,small;
printf("Enter %d number :",N);
for(i=0;i<N;i++)
scanf("%d",&b[i]);
max_min(b,N,&big,&small);
printf("Largest:%d/n",big);
printf("Smallest:%d/n",samll);
return 0;
}

void max_min(int a[], int n, int *max,int *min)
{
int i;
*max=*min=a[0];
for(i=1;i<n;i++)
{
if(a[i]>*max)
{
*max=a[i];
else if(a[i]<*min)
*min=a[i];
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: