我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 指针 >

指针的赋值问题

归档日期:09-05       文本归类:指针      文章编辑:爱尚语录

  请帮我分析下上面这题 具体点 还有能不能告诉我一个C语言 新手的交流群 谢谢

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部指针是个存着地址的变量,因为我们每定义一个变量,内存就会给他分配空间,那么每个变量必须会有一个存储他的地方,我们称为地址,他指向谁,里面就存着谁的地址。如题*p=a;

  此时p里面存的是a的地址(记住这一点),还可以用取地址符&获取变量的地址,如表示的是a的地址。变量的值可以用*号获取。* 后面加一个地址,表示这个地址里面的数值(也记住,很重要)

  C ’=‘ 是赋值,为了程序的稳定,我们默认只允许同类型的参数进行赋值(若不同类也会赋值,但是执行结果会出错)

  就是说,只允许,指针地址赋值给指针地址,变量值赋值给变量值。了解这些,就可以分析了:

  int a,*p,*q; p=q=//对的,p,q指针表示地址,根据B原则,&a也是地址,因此可以进行赋值

  展开全部首先指针最好不要做赋值运算,int *p,*q; q=p;p是一个地址就是把p的地址赋给指针p,两个值都是16进制数,但是这样做的话两个指针指的是同一个地址并且没有被在其地址位之内放int型的整数;

  int a,*p,*q; p=q=是在上面的基础上对其地址位置的内存放置了一个a(,但是这个数是多少是,是垃圾数据);

  int a,*p,*q; q= p=*q;在指针q和指针p所指位置上的内存中放置的是同一个a(int数,随机的)*与&是逆运算,假如p是指针,*p代表的就是p所指内存中储存的数,a代表一个int型的数,那么&a代表的就是这个数所指的地址值;p等价&(*p);

  int a=20,*p; *p=a;*p在这里代表的是一个间接变量,你可以吧*p当成一个变量,这个变量比普通变量好用……

  int a=20,*p,*q= *p=*q;这个玩的是具体的int型值,对于p和q所指的地址并不做任何操作,都是随机的地址;

  int a=20,*p,*q= p=q;同上面不一样的是p与q指向了同一个地址,实际上是把q指向的地址赋给了p;

  加上一句,虽然*p很好用,但是开始时由于其指向不明确,是随机地址,滥用的话会造成内存管理混乱,建议在用指针前最好用malloc和new函数开辟动态内存。

  (p=*q不对,应该是p=q,*p=a;不对,p根本没有指向任何位置。)

  (a=b=0这种初始化方式不对,*p=*q不对,p根本没有指向任何位置)

  展开全部int *p,*q; q=p; // 虽然q未被初始化,p = q赋值也没有任何意义,但合理合法

本文链接:http://masterblue.net/zhizhen/570.html