请高人帮我讲解一下 关於指针

来源:百度知道 编辑:UC知道 时间:2024/07/09 06:57:11
A function name represents the address of program instructions that make up the function, referencing memory in the program segment. You can assign this address of a function to a pointer to a function.

Finally, a pointer cast operation can convert convert an integer to an address, referencing memory in any of the segments. In this way, an integer can be used to represent a global address, accessing any part of a computer's memory.
这是我教材上的两段话 前一段话我理解, 但是后一段话讲的是什麽意思 只是用指针讲任意一个整数设为某个函数或者变量的地址,然后调用的时候用这个整数就可以了么? 然后调用的对象可以使存数在内存的任何的地方的变量或者函数。 请问我理解的对麼, 可否举例说明, 然后请高人留下MSN QQ或者邮箱 以便日后小女子我求教
我急需的运用举例 大题意思我能理解~

大概的意思是指针调用可以把任意一个整数转换成一个任意段地址的内存地址。
这样一个整数可以作为一个全局地址,从而访问任意的计算机内存。

顺路问一句,你学什么的,非要看英文资料?这么简单的问题看中文的吧。

你的理解是对的,指针的大小是4个字节,Int的大小也是4个字节,所以第二段话是要你定义一个转换函数,将任意Int转换成一个指针,这样可以通过这个地址访问计算机内存中的任意位置。

不过,window和其它操作系统都有进程保护机制,不可能访问到的,不知道你这个题目用意何在。

这两段话说的应该是函数指针的用法,它的意思是说:一个函数名就是一个地址,你可以把这个地址赋给一个函数指针。

因为内存地址(即指针)都是整形的,所以可以把一个整形的数转换成一个指针,这个指针指向的可以是内存中的任何一个内存区,所以就可通过这个指针访问到计算机的任何内存区域了。

在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。

1.函数指针定义

函数类型 (*指针变量名)(形参列表);

“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。

例如:

int (*f)(int x);

double (*ptr)(double x);

在定义函数指针时请注意:

函数指针和它指向的函数的参数个数和类型都应该是—致的;

函数指针的类型和函数的返回值类型也必须是一致的。

2.函数指针的赋值

函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。

例如,

int func(int x); /* 声明一个函数 */