说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

高分请教:指针赋值问题

编辑:说三道四文库 发布时间:2018-02-24 04:46
HTML文档下载 WORD文档下载 PDF文档下载
刚看到指针,有些不明白
1.       *pa=s    
2.       pa=*s
3.       *pa=*s
4.       pa=s

定义pa是指针.以上4个赋值都对吗?如果对了,都是什么意思?
还有什么别的方面或者方法?
另外学习指针要注意什么?
你这个问题怎么回答啊,那四个赋值的表达式是什么意思啊,右值太不清楚了!
说详细点啊,
我就是在一些程序里看到这样的赋值,什么把值给指针,把地址给指针的,不太明白上面几个都是什么给什么赋值
4个赋值都是有可能出现的情况。
1.       *pa=s    // 将s赋值给pa所指的对象
2.       pa=*s    // 将s所指的对象的值 赋值给pa
3.       *pa=*s   // 将s所指的对象的值 赋值给pa所指对象的值
4.       pa=s     // 将s值 赋值给pa的值

“*”出现在变量名字的左边表示间接运算,也就是取这个变量所指对象的值。
你得先说明 s 是一个指针还是一个值变量。
都不知 s 是什么,eric8231(小诗)说得有点片面,像"pa=s     // 将s值 赋值给pa的值"这一句,如果 s 是一个指针,那么应是使pa 指向 s 所指的同一个地址。    如果 s 是一个值变量,那么pa= s这种赋值是错误的。
这里你的先说明s和p分别是什么类型的变量。
TO  hansen1998(烟雨鹤):

如果 s 是一个指针,“将s值 赋值给pa的值”也没有问题呀:-)  指针变量里存放的值不就是某个地址吗~
第一个问题:小诗+烟雨鹤

第二个:关键是搞清楚指针是什么,指针指向的又是什么。

指针本身也是数据,它在内存的内容是另外的数据的地址。
如果这4个语句在同等条件下判断,那么至少有两个是错误的。
1.*pa=s 和4.pa=s,相对,1对,则4不对;  
2. pa=*s和3.*pa=*s 相对,2对,则3不对;

我想这里的前题应该是pa和s都是指向同一类型数据的指针吧~~~如果是这样,应该是3和4正确。
3.*pa=*s 表示将指针s所指向单元的值赋给指针pa所指向的单元
4.pa=s   使指针pa与s指向同一个单元


我觉得,学习指针应该注意的是,指针也是一个变量,它也有地址和值之分,与一般变量不同的是,指针的值是另一个变量的地址。


备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘