评书网,钱包,古诗词,高速公路,防晒霜

关于倍数的乘法和除法,C语言中指针的#2A号和乘法的#2A号,怎么更好的区分?


时间:

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

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

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

int *p;

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

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

*p + 1;

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

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

1 * *p;

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

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

我认为你说的是在阅读别人代码时,会不会出现分不清 指针* 还是 乘法* 操作符号。

如果我理解的没有错的话,这个问题应该不用担心,因为按照C语法规则,乘法操作符号 * 两边类型相同,那么你就看操作符前后类型了!

    相关阅读

    • 倍数的乘法和除法
    • 乘法除法的几倍数
    • 倍数是乘法还是除法
    • 倍数乘法除法
    • 算倍数用乘法还是除法
    • 除数是小数的除法