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

说起C语言的这个指针的星号,我觉得有时候真的很容易引起人的误会啊。当初老外在发明设计C语言的时候,怎么没有想到这个星号会与乘法符号相互混淆呢?不过既然C语言已经发明了这

本文最后更新时间:  2023-02-04 10:37:08

说起C语言的这个指针的星号,我觉得有时候真的很容易引起人的误会啊。当初老外在发明设计C语言的时候,怎么没有想到这个星号会与乘法符号相互混淆呢?不过既然C语言已经发明了这么多年了,全世界使用C语言也很嗨嘛,再去修改这个规定也不现实,那么我们就从自身出发,看看这个星号怎么去区别指针和乘法吧。

其实星号什么时候是用在指针上,什么时候用到乘法上,还是比较容易区分的。

对于指针而言,星号一般出现在两个场合,一个是指针定义的场合,一个是指针使用的场合。在定义指针的场合,就是在定义指针时前面加个星号而已,比如:

int *p;

这个就死记硬背吧,指针定义时前面的星号就是告诉编译器变量p就是个指针,除此之外没有别的意思了。

在指针使用的场合前面会加个星号。注意不是定义指针哦,是使用指针,比如:

*p + 1;

上述这个语句的意思就是使用指针,怎么使用?就是把指针指向的值加上1.这个也死记硬背吧,使用指针时前面的星号就是告诉编译器我要用指针了,除此之外也没有别的意思了。

那么在做乘法的时候,星号就是一个运算法则。如果在乘法中药用到指针的话,可能会出现如下写法:

1 * *p;

意思就是1与指针指向的值相乘。此时怎么区分?就是最贴近指针变量p的那个星号是用于指针的,也就是指针定义时使用。

如果C语言能重新发明一次,也许发明者会用个#、$或者其他的什么字符来代替*吧,因为表示指针的*和乘法的*确实容易混淆。

 1/2    1 2 下一页 尾页
温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。