永发信息网

指针指的是什么

答案:2  悬赏:80  手机版
解决时间 2021-12-30 06:23
  • 提问者网友:原来太熟悉了会陌生
  • 2021-12-29 21:09
指针指的是什么
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-12-29 21:18
问题一:指针是什么意思 指针
在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。
面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。
在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数的值。
指针与C语言
大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。
因此,说指针是c语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。
basic不支持指针,在此不论。其实,pascal语言本身也是支持指针的。
从最初的pascal发展至今的object pascal,可以说在指针运用上,丝毫不会逊色于c语言的指针。问题二:指针中的*是什么意思 (*p)操作是这样一种运算,返回p 的值作为地址的那个空间的取值。(&p)则是这样一种运算,返回当时声明p 时开辟的地址。
两个地方要注意:   在程序声明变量的时候的*,只是表明“它是一个整数,这厂整数指向某个内存地址,一次访问sizeof(type)长度”。这点不要和(*)操作符混淆;   在C++程序声明变量的时候的&,只是表明“它是一个引用,这个引用声明时不开辟新空间,它在内存分配表加入新的一行,该行内存地址等于和调用时传入的对应参数内存地址”。   这点不要和(*)声明符,(&)操作符混淆。问题三:*p指指针则**p是什么? 如果你说的是(*p)的值是个指针的话,(**p)就是将(*p)解引用,也就是(*p)地址上的值。
你的问题没有说清楚问题四:指针**a是什么意思 相当于a[][]、也相当于*a[]、
*(*(a[+1])+2)相当于a[ 1][+2]
指针其实就是内存地址、*a就是内存地址的数据
而数组名就是数组的首地址
int i=0;
int *p;
int **a=&p;
就是把指针p的地址存到a里面去
此时, *a就是p的值 ,也就是i的地址
**a就是0,也就是i的地址
半夜用手机打代码给你-不采纳没良心问题五:C语言指针**p是什么意思 它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针
所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。
先声明几个指针放着做例子:
例一:
(1)int *ptr;
(2)char *ptr;
(3)int **ptr;
(4)int (*ptr)[3];
(5)int *(*ptr)[4];
如果看不懂后几个例子的话,请参阅我前段时间贴出的文章 >。
1。 指针的类型。
从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一
中各个指针的类型:
(1)int *ptr; //指针的类型是int *
(2)char *ptr; //指针的类型是char *
(3)int **ptr; //指针的类型是 int **
(4)int (*ptr)[3]; //指针的类型是 int(*)[3]
(5)int *(*ptr)[4]; //指针的类型是 int *(*)[4]
怎么样?找出指针的类型的方法是不是很简单?
2。指针所指向的类型。
当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。
从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:
(1)int *ptr; //指针所指向的类型是int
(2)char *ptr; //指针所指向的的类型是char
(3)int **ptr; //指针所指向的的类型是 int *
(4)int (*ptr)[3]; //指针所指向的的类型是 int()[3]
(5)int *(*ptr)[4]; //指针所指向的的类型是 int *()[4]
在指针的算术运算中,指针所指向的类型有很大的作用。
指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的“类型”这个概念
分成“指针的类型”和“指针所指向的类型”两个概念,是精通指针的关键点之一。我看了不少书,发现有些写得差的书中,就把指针的这两
个概念搅在一起了,所以看起书来前后矛盾,越看越糊涂。
3。 指针的值,或者叫指针所指向的内存区或地址。
指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32位程序里,所有类型的指针的值都是一个32
位整数,因为32位程序里内存地址全都是32位长。
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的
值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区
域的首地址。
指针所指向的内存区和指针所指向的类型是两个完全不同的概念。在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所
指向的内存区是不存在的,或者说是无意义的。
以后,每遇到一个指针,都应该问问:这个指针的类型是什么?指针指向的类型是什么?该......余下全文>>问题六:C语言中指向指针的指针是什么意思 #includeint main(void){int a;int* p;int** fp;a = 1;p = &a;fp = &p;printf(%d\n, a);printf(%d\n, *p);printf(%d\n, **fp);return 0;}
看图说话把(可以把图片另存为桌面再打开会清晰点) 上面的程序输出的结果都是1
指针其实也是个变量(只要是变量就一定有相应的内存空间) 只是这个变量比较的特殊
它只能存放别的变量的地址 变量时在内存中是有地址的
你要明确两概念:变量值和变量地址
变量值:是变量本身的内容
变量地址:是该变量在内存中的位置编号
程序中的第5行就是声明了一个指向指针变量的变量,什么意思?
通俗来讲就是说这个变量fp只能接受一个指针变量的地址所以你看第8行在p前面加了一个’&‘取地址符号 也就是说把p这个变量的地址给了fp了fp的内容就是p的地址
接下来9行输出了a的值这个直接通过变量名a就能找到该变量的地址并且直接输出了a的值1
第10行你会发现输出列表参数里面是*p是什么意思?其中的“*”在这里表示指针运算符, 就是说以p的内容为地址找到该地址里面的值 p里面不是村的a变量的地址吗不是吗? 你看第7行是不是在a变量前面加了“&”取地址运算符了 所以*p就是1
第11行**fp 这里出现了2个‘*’号 别急 由于指针运算符的结合方向为“自右至左”所以*fp先运算那么*fp是什么就是一fp的内容为地址找到的变量的值是什么 fp里面存放着p的地址 显然此时*fp最终变成了p这个变量的地址了
*(p变量的地址) 到了这一步就是说以p的内容为地址找到对应的变量了 显然是a这个变量了
你慢慢理解吧。说的有点繁琐了
第11就是你说的指向指针的指针了。问题七:指针 ->什么意思? 就是 x 指向 y 的意思
指针也没什么难理解
别想太多了
指针就是一个存放地址的变量
当指针指向某个变量
这时这个指针里就存放了那个变量的地址
同时可以利用指针直接取变量中的值用 只要在指针前加 * 就是取其
真值了(也就是别指向的变量的值)
举个例子
int i=0,*p;
声明了一个 int 类型的 变量i和指针p
假设i在内存中所存在的地址为aaaaa(随便写的)
p->i 就是使指针p指向i
也就是说 指针p中存放了aaaaa这个地址
当你操作这个p时就是直接操作了aaaaa这个地址中存放的东西
间接操作了变量i,
这就是指针的作用问题八:C++的指针是什么意思 指针,非常重要,去看书吧,这里先简单说一下。
执行数据在内存里存储着,每一字节数据都有一个序列号,叫做地址,指针就是存这些地址的。指针的操作就是地址的操作,通过地址来访问、处理数据要比顺序处理要好得多。
注:试想如果你可以在内存中自由穿梭,你可以做多少事。。。问题九:*P在指针中的含义是什么 表示指针所指向的内存单元。
int b = 10;
int *p = &b;
那么 b 和 *p 都代表 b。
全部回答
  • 1楼网友:西风乍起
  • 2021-12-29 22:23
谢谢了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯