C语言指针可以相加吗?为什么?3Q

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/29 16:48:43
C语言指针可以相加吗?为什么?3Q
x_RPŷ)\AP Db'"H*:XfInq47s-ݤ/;d n/Na2⡏VK|qZ)~(^.kܟrW*IA-σ3kk}ؠjpܐGbO2{04z$׺[ZWo'R+~ k"j&_|UKǼJ4 [X]bestL-uR[`vXJgN3K pц9ǴuPÃ #̶({Wj XІ)D2F8^(FQ1oGN sp7[zS.hNppO&nu[$GIYvΔzL;bxY9eM }A

C语言指针可以相加吗?为什么?3Q
C语言指针可以相加吗?为什么?3Q

C语言指针可以相加吗?为什么?3Q
两个指针是不能相加的.仍以街道地址的比喻为例,假设你住在湖滨大道1332号,你的邻居住在湖滨大道1364号,那么1332+1364指的是什么呢?其结果是一个毫无意义的数字.如果你的C程序试图将两个指针相加,编译程序就会发出警告.当你试图将一个指针和另外两个指针的差值相加的时候,你很可能会误将其中的两个指针相加,例如,你很可能会使用下述语句:p=p+p2-p1; 上述语句是不正确的,因为它和下述语句完全相同:p=(p+p2)-p1; 正确的语句应该是:p=p+(p2-p1); 对此例来说,使用下述语句更好:p+=p2-p1;