A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fanxing 中级黑马   /  2015-6-13 12:47  /  1073 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int *p, *q;
int a = 10;
//下面这几个到底有啥区别呢,跪求指点内部原理
*p = &a;
p = &a;
q = &p;
*q = *p;
p = q;
q  = *p;

10 个回复

倒序浏览
int *p, *q;
int a = 10;
//下面这几个到底有啥区别呢,跪求指点内部原理

*p = &a; // 現在指針p指向 a 的內存地址

p = &a; // 把&a複製到p ,也就說現在 p的內容變成a 的地址

q = &p; //同上 把&p複製到q ,也就說現在 q的內容變成p 的地址

*q = *p; //把p 的位置 複製到 q 的位置

p = q; // 把q 內容複製到p的內容

q  = *p; // 把p 的地址 複製到q的內容

這題有兩個重點
第一點:
               “&”是用來找出後面變數的地址 這點很重要

int *p, *q; //宣告 p , q  是指向int的 (pand q are pointer to int )


第二點:
               所謂的等號  “=“  就是說 “把右邊的東西丟到左邊”

明白這兩點之後 題目就解開了


   
回复 使用道具 举报 1 0

没写的我也不知道啥意思了.. 没研究过,太奇葩.你看看警告和报错吧.
回复 使用道具 举报
首先定义两个int *  类型的变量 p和q 用来接收整型类型数据的地址,下面又定义一个int类型的变量2
回复 使用道具 举报
下面又定义一个int类型的变量a  用来存放一个整型数据10; *p=&a;是错误的。应该是p=&a;*p是一个整型变量不会接受一个地址类型的数据。p=&a;是用来接收a变量的地址,即指向a变量。q = &p;是指针变量q指向指针变量p的地址。
回复 使用道具 举报
加*是取值,p是指地址
回复 使用道具 举报
找一本c语言的书,里面有详细讲解,比听别人讲好多了
回复 使用道具 举报
Kuhoku 发表于 2015-6-13 14:01
int *p, *q;
int a = 10;
//下面这几个到底有啥区别呢,跪求指点内部原理

感谢,知道了
回复 使用道具 举报
jiangshengkai 发表于 2015-6-13 21:35
找一本c语言的书,里面有详细讲解,比听别人讲好多了

感谢,知道了
回复 使用道具 举报
用环境多试试,试了以后记得更清楚
回复 使用道具 举报
围观学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马