指向指针的指针 假设 int **p;int i = 3;*p = &i;在这种情况下是不是p指向*p*P指向**p而*
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/19 04:26:48
指向指针的指针
假设
int **p;
int i = 3;
*p = &i;
在这种情况下是不是
p指向*p
*P指向**p
而**p就是要存储的内容
我这样理解对吗?
求教各位大哥大姐
假设
int **p;
int i = 3;
*p = &i;
在这种情况下是不是
p指向*p
*P指向**p
而**p就是要存储的内容
我这样理解对吗?
求教各位大哥大姐
你的理解基本正确,小问题是 你的*p没有分配空间,所以直接用*p可能会造成内存出错
再问: *p给他赋值 为 &i了 怎么说没有分配空间呢
再答: 那你先告诉我,&i 这个东西存放在哪里
再问: 刚才我问错了 &i这个东西放在了 *p这个内存的单元里面了 我现在理解你刚才说的意思了 你的意思是 *p这个内存单元的地址 没有事先分配好吧
再答: 嗯,对,因为你题中只分配了两个内存单元,一个是I的内存单元,一个是P的内存单元,那*P的内存单元是没有分配的,既然是指向指针的指针,那么,指针的指针要占一个单元,指针也要占一个单元,指针指向的地址也要占一个单元
再问: 大哥很感谢您的帮助不过现在我晕了 在c语言中 是不是声明一个变量的时候 就给这个变量分配内存呢? 如果是的话 在这个例子中 我在声明 int **p;的时候 系统就给p分配好了内存地址 所以 p这个单元所占的内存地址是安全的 而我没有声明 *p 所以系统给*p分配内存的时候 就是未知的了 是这个样子吗? 如果先给 p赋值的话 给p赋的值 不就是 *p这个指针变量在内存中的地址了吗? 怎么正确给p赋值呢?
再答: p已经是有地方存放了 对吧,但是p没有值 你要么再定义一个指针变量,如 int *tmp = &i; p = &tmp; 或者 给p分配一块指向的空间 p = (int**)malloc(sizeof(int**));//这样*p就有空间了 这两种都可以,不过后一种要记得自己free掉p哦
再问: *p给他赋值 为 &i了 怎么说没有分配空间呢
再答: 那你先告诉我,&i 这个东西存放在哪里
再问: 刚才我问错了 &i这个东西放在了 *p这个内存的单元里面了 我现在理解你刚才说的意思了 你的意思是 *p这个内存单元的地址 没有事先分配好吧
再答: 嗯,对,因为你题中只分配了两个内存单元,一个是I的内存单元,一个是P的内存单元,那*P的内存单元是没有分配的,既然是指向指针的指针,那么,指针的指针要占一个单元,指针也要占一个单元,指针指向的地址也要占一个单元
再问: 大哥很感谢您的帮助不过现在我晕了 在c语言中 是不是声明一个变量的时候 就给这个变量分配内存呢? 如果是的话 在这个例子中 我在声明 int **p;的时候 系统就给p分配好了内存地址 所以 p这个单元所占的内存地址是安全的 而我没有声明 *p 所以系统给*p分配内存的时候 就是未知的了 是这个样子吗? 如果先给 p赋值的话 给p赋的值 不就是 *p这个指针变量在内存中的地址了吗? 怎么正确给p赋值呢?
再答: p已经是有地方存放了 对吧,但是p没有值 你要么再定义一个指针变量,如 int *tmp = &i; p = &tmp; 或者 给p分配一块指向的空间 p = (int**)malloc(sizeof(int**));//这样*p就有空间了 这两种都可以,不过后一种要记得自己free掉p哦
int x[5]; int *p; p=&x[2]; //指针p存放x[2]的地址,相当于p是指向x[2]的指针 *p=
怎么用一个指针数组指向一个数组?比如:int a[]={1,2,3},*p[3];怎么指向?
以下能使指针变量p指向变量a的正确选项是?A.int a,*p=a; B.int a,p=a; C.int a,*p=*
p是指向数字元素a【i】的指针变量,与*p+*p--等价的描述是()
p->next=NULL是将指针P指向的next置空还是将P的下一个指针指向空
数据结构里!p || p的意思是p空吧.可是p不是头指针吗,头指针指向头结点怎么空了?原文P=L.
已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ].为什么选择
若有定义int(*p)[3]; 则定义了一个名为p的指针变量 它可以指向每行有三个整数元素的二维数组
关于指针变量的问题首先定义数组int a[3];如果把a赋给一个指针变量p,那么p该如何定义?我觉得a是指向行的,而&a
若有定义:int x;,则定义一个可以指向整型变量x的指针P的语句是什么?
关于指针的问题 p,p1,p2都是指针 p=p1; p1=p2;p2=p; 交换了指针指向空间的内容?
若已有定义int(*p)();则指针p A)代表函数的返回值 B)指向函数的入口地址 C)代表函数的类型 D)表示函数返