简明现代魔法 -> 数据结构 -> 用地址访问一维数组

用地址访问一维数组

2010-07-26

写一个函数,这个函数输出数组的第i个元素的地址及其对应的值。

这个函数使用指针算术运算,并以 getAddress(&array[0], length) 的形式调用。第i个元素的地址就是 ptr + i,为了得到第i个元素的值,使用复饮用操作副(复位)*。所以 *(ptr + i) 表示位置 ptr + i 的内容而不是地址。

#include <stdio.h>

void getAddress(int *ptr, int rows);

main()
{
	int wait, length;
    
	int arrayTest[] = {0, 1, 2, 3, 4};

	length = sizeof(arrayTest)/sizeof(arrayTest[0]);

	getAddress(arrayTest, length);


	scanf("%d", &wait);
}

void getAddress(int *ptr, int rows)
{
	int i;

	for(i = 0; i < rows; i++)
	{
		printf("值%5d的内存地址为%8u\n", *(ptr + i), ptr + i);
	}
	printf("\n");
}

程序运行结果:

值    0的内存地址为 1244980
值    1的内存地址为 1244984
值    2的内存地址为 1244988
值    3的内存地址为 1244992
值    4的内存地址为 1244996

在这里,地址是以4为步长进行增长的。

随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们