指针-----希望对大家有用
2010-08-10 10:13
330 查看
指针变量
1、观察表示指针的内容,大多数现代计算机用字节来分隔内存,每个字节可以储存8位信息。内存为 16MB的机器拥有16777216个字节,那么可以认为作为地址数的范围是0~n-1.
2、程序中每个变量占有一个或者多个内存字节,把第一个地址称为是变量的地址。如图:变量i占有的 字节从地址2000到地址2001,所以变量i的地址是2000:
![](http://hi.csdn.net/attachment/201008/10/0_1281406306n7oe.gif)
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];
}
}
}
1、观察表示指针的内容,大多数现代计算机用字节来分隔内存,每个字节可以储存8位信息。内存为 16MB的机器拥有16777216个字节,那么可以认为作为地址数的范围是0~n-1.
2、程序中每个变量占有一个或者多个内存字节,把第一个地址称为是变量的地址。如图:变量i占有的 字节从地址2000到地址2001,所以变量i的地址是2000:
![](http://hi.csdn.net/attachment/201008/10/0_1281406306n7oe.gif)
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];
}
}
}
相关文章推荐
- 项目开发中整理的工具类,希望对大家有用
- Android一个小球弹跳的例子,希望对大家有用
- 妹纸比较菜,平时总结的网址,分享给大家,希望对你们有用!
- Android一个小球弹跳的例子,希望对大家有用
- [推荐]精品代码收藏(希望对大家有用)
- IIS安全配置精华,希望对大家有用
- 写了个在线的性能计数器,希望对大家有用
- 免费资料大放送大家好!我整理了一些免费it视频教程及电子书的资料,还不错,对开发入门或者是想提升技术高度的童鞋可能会比较有用,分享给大家,希望可以帮助到大家
- 整理的 AjaxControlToolkit.chm ,希望对大家有用
- 一段模拟水波纹的代码,希望对大家有用
- [资源]几年来积累下来的一点东西,希望大家有用.
- 自己做的SQL语句生成器,希望大家有用
- 写了个鼠标键盘模拟器,希望对大家有用哈!
- 我自己整理的一些常用SQL语句,希望对大家有用啊
- 上传带注释的iom32v.h和iom8v.h头文件,希望对大家有用,编程的时候不用查数据手册
- 自己总结的一套JavaScript,希望对大家有用
- 百度地图导航功能 希望对大家有用吧
- 中国500家企业的薪资待遇希望对大家有用!!!
- Meta标签详解,在网上转的,希望对大家有用
- 写了些JS扩展,有错误请指出,希望对大家有用^^