怎么给一个指针赋值

就是让用户自己从键盘输入一个值给指针,书上说有三种方法!... 就是让用户自己从键盘输入一个值给指针,书上说有三种方法! 展开
 我来答
做一个快乐的茶农
高粉答主

2019-11-14 · 每个回答都超有意思的
知道答主
回答量:1396
采纳率:100%
帮助的人:31.8万
展开全部

1、打开visual studio,创建一个控制台应用程序,用于演示指针的使用、赋值和取值。

2、在Main方法中,添加一个unsafe代码段,C#语法中的指针都需要放在这个代码段中。

3、定义一个指针变量,与定义普通变量唯一的区别就是在变量的类型后面加上一个星号。例如:定义一个整型指针变量p,定义形式如下:

    int* p;

4、如果像普通变量一样直接赋值10,从代码效果可以看出,这样是不被允许的,编译器直接报错。

5、那么,另外定义一个普通变量,例如:int x = 100。

6、使用&符号在变量前面,就表示获取这个变量的内存地址。这个时候就可以复制给指针了。例如:将整型变量x的地址赋值给指针p:

  p = &x。

7、在指针变量前面加一个星号,表示获取这个指针指向的地址中的值。例如想要输出指针p的值,就使用 *p 即可。

上_善_下_流
推荐于2017-09-29 · TA获得超过677个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:139万
展开全部
指针其实就是内存地址。
使用指针可以深入硬件底层。
可以用&运算符将变量的地址取出。赋予指针。int a=5,int* p=&a;
数组中,数组名表示数组的起始地址。因此可以将数组名赋予指针。int arry[50];int* p=array;
还有动态分配内存时。int* p=new int[50],classA *p=new ClassA();也是在运行时堆中分配指定大小的内存块。并把内存块起始地址赋予指针变量p.
简单的应用就是这样。
复杂的指针应用比如函数指针等。说白了还是地址。用来实现类似于C#委托功能。用久了自然会清晰了。
在指针的运算中。编译器会自动计算地址增加量。
比如针对 p++后;
int型的指针的值:当前地址+sizeof(int)。内存是按字节编址的。
classA类型的指针的值:当前地址+sizeof(classA)。
对其解引用后*p指向的就是下一个元素的值。比如对于数组指针。*array=array[0]
*(array+1)=array[1];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
2019-06-17 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450096
专业C/C++软件开发

向TA提问 私信TA
展开全部
要改p–>a的值,和在这个函数里面是一样的
直接
p–>a=要赋值的值
这样就可以了
唯一需要注意的就是要赋值的是结构体指针还是结构体变量,如果不是指针那就要改成点了
p.a这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tulilang123456
2011-11-27 · TA获得超过100个赞
知道答主
回答量:17
采纳率:0%
帮助的人:16万
展开全部
不建议从键盘输入一个值直接复制给指针变量。因为如果让用户自己从键盘输入一个值给指针,就形成了野指针,野指针的不当使用会带来严重的后果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanpan004
推荐于2017-09-13 · TA获得超过146个赞
知道小有建树答主
回答量:236
采纳率:0%
帮助的人:137万
展开全部
#include <stdio.h>
main()
{int *a,b;
//-----------第一种
scanf("%d",&b);
*a=b;
//----------第二种
scanf("%d",*a);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式