C语言中指针的*号和乘法的*号,怎么更好的区分?

发布网友 发布时间:2022-04-23 10:52

我来回答

1个回答

热心网友 时间:2023-10-11 20:02

说起C语言的这个指针的星号,我觉得有时候真的很容易引起人的误会啊。当初老外在发明设计C语言的时候,怎么没有想到这个星号会与乘法符号相互混淆呢?不过既然C语言已经发明了这么多年了,全世界使用C语言也很嗨嘛,再去修改这个规定也不现实,那么我们就从自身出发,看看这个星号怎么去区别指针和乘法吧。
其实星号什么时候是用在指针上,什么时候用到乘法上,还是比较容易区分的。
对于指针而言,星号一般出现在两个场合,一个是指针定义的场合,一个是指针使用的场合。在定义指针的场合,就是在定义指针时前面加个星号而已,比如:
int
*p;
这个就死记硬背吧,指针定义时前面的星号就是告诉编译器变量p就是个指针,除此之外没有别的意思了。
在指针使用的场合前面会加个星号。注意不是定义指针哦,是使用指针,比如:
*p
+
1;
上述这个语句的意思就是使用指针,怎么使用?就是把指针指向的值加上1.这个也死记硬背吧,使用指针时前面的星号就是告诉编译器我要用指针了,除此之外也没有别的意思了。
那么在做乘法的时候,星号就是一个运算法则。如果在乘法中药用到指针的话,可能会出现如下写法:
1
*
*p;
意思就是1与指针指向的值相乘。此时怎么区分?就是最贴近指针变量p的那个星号是用于指针的,也就是指针定义时使用。
如果C语言能重新发明一次,也许发明者会用个#、$或者其他的什么字符来代替*吧,因为表示指针的*和乘法的*确实容易混淆。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com