C语言中 *c=&m和c=&m的区别 C语言中,M++和++M有什么区别,举个例子

C\u8bed\u8a00\u4e2d \u201c*c=&m\u201d\u548c\u201cc=&m\u201d\u7684\u533a\u522b\u662f\u4ec0\u4e48\uff1f

"&"\u662f\u53d6\u5740\u8fd0\u7b97\u7b26\uff0c\u53d6\u53d8\u91cf\u5728\u5185\u5b58\u5355\u5143\u4e2d\u7684\u9996\u5730\u5740\uff0c\u201c&\u201d\u53d6\u5730\u5740\u8fd0\u7b97\u7b26\u7684\u64cd\u4f5c\u5bf9\u8c61\u5fc5\u987b\u662f\u5185\u5b58\u5355\u5143\uff08\u5982\u53d8\u91cf\u3001\u6570\u7ec4\u5143\u7d20\u7b49\uff09\u3002
\u201c*\u201d\u662f\u95f4\u63a5\u8bbf\u95ee\u8fd0\u7b97\u7b26\uff0c\u95f4\u63a5\u8bbf\u95ee\u6307\u9488\u6240\u6307\u5411\u7684\u5bf9\u8c61\uff0c\u201c*\u201d\u8fd0\u7b97\u7b26\u7684\u64cd\u4f5c\u5bf9\u8c61\u5fc5\u987b\u662f\u6307\u9488\uff08\u5730\u5740\uff09\u3002
\u56e0\u6b64\uff1a*C=&m\u662f\u628am\u5728\u5185\u5b58\u4e2d\u7684\u5730\u5740\u8d4b\u7ed9c\u8fd9\u4e2a\u6307\u9488\u6307\u5411\u7684\u53d8\u91cfc=&m\u662f\u628am\u7684\u5730\u5740\u8d4b\u7ed9c\u8fd9\u4e2a\u6307\u9488
\u8bed\u8a00 \u7f16\u8f91 \u9501\u5b9a
C\u8bed\u8a00\u662f\u4e00\u95e8\u901a\u7528\u8ba1\u7b97\u673a\u7f16\u7a0b\u8bed\u8a00\uff0c\u5e94\u7528\u5e7f\u6cdb\u3002C\u8bed\u8a00\u7684\u8bbe\u8ba1\u76ee\u6807\u662f\u63d0\u4f9b\u4e00\u79cd\u80fd\u4ee5\u7b80\u6613\u7684\u65b9\u5f0f\u7f16\u8bd1\u3001\u5904\u7406\u4f4e\u7ea7\u5b58\u50a8\u5668\u3001\u4ea7\u751f\u5c11\u91cf\u7684\u673a\u5668\u7801\u4ee5\u53ca\u4e0d\u9700\u8981\u4efb\u4f55\u8fd0\u884c\u73af\u5883\u652f\u6301\u4fbf\u80fd\u8fd0\u884c\u7684\u7f16\u7a0b\u8bed\u8a00\u3002
\u5c3d\u7ba1C\u8bed\u8a00\u63d0\u4f9b\u4e86\u8bb8\u591a\u4f4e\u7ea7\u5904\u7406\u7684\u529f\u80fd\uff0c\u4f46\u4ecd\u7136\u4fdd\u6301\u7740\u826f\u597d\u8de8\u5e73\u53f0\u7684\u7279\u6027\uff0c\u4ee5\u4e00\u4e2a\u6807\u51c6\u89c4\u683c\u5199\u51fa\u7684C\u8bed\u8a00\u7a0b\u5e8f\u53ef\u5728\u8bb8\u591a\u7535\u8111\u5e73\u53f0\u4e0a\u8fdb\u884c\u7f16\u8bd1\uff0c\u751a\u81f3\u5305\u542b\u4e00\u4e9b\u5d4c\u5165\u5f0f\u5904\u7406\u5668\uff08\u5355\u7247\u673a\u6216\u79f0MCU\uff09\u4ee5\u53ca\u8d85\u7ea7\u7535\u8111\u7b49\u4f5c\u4e1a\u5e73\u53f0\u3002
\u4e8c\u5341\u4e16\u7eaa\u516b\u5341\u5e74\u4ee3\uff0c\u4e3a\u4e86\u907f\u514d\u5404\u5f00\u53d1\u5382\u5546\u7528\u7684C\u8bed\u8a00\u8bed\u6cd5\u4ea7\u751f\u5dee\u5f02\uff0c\u7531\u7f8e\u56fd\u56fd\u5bb6\u6807\u51c6\u5c40\u4e3aC\u8bed\u8a00\u5236\u5b9a\u4e86\u4e00\u5957\u5b8c\u6574\u7684\u7f8e\u56fd\u56fd\u5bb6\u6807\u51c6\u8bed\u6cd5\uff0c\u79f0\u4e3aANSI C\uff0c\u4f5c\u4e3aC\u8bed\u8a00\u6700\u521d\u7684\u6807\u51c6\u3002 [1] \u76ee\u524d2011\u5e7412\u67088\u65e5\uff0c\u56fd\u9645\u6807\u51c6\u5316\u7ec4\u7ec7\uff08ISO\uff09\u548c\u56fd\u9645\u7535\u5de5\u59d4\u5458\u4f1a\uff08IEC\uff09\u53d1\u5e03\u7684C11\u6807\u51c6\u662fC\u8bed\u8a00\u7684\u7b2c\u4e09\u4e2a\u5b98\u65b9\u6807\u51c6\uff0c\u4e5f\u662fC\u8bed\u8a00\u7684\u6700\u65b0\u6807\u51c6\uff0c\u8be5\u6807\u51c6\u66f4\u597d\u7684\u652f\u6301\u4e86\u6c49\u5b57\u51fd\u6570\u540d\u548c\u6c49\u5b57\u6807\u8bc6\u7b26\uff0c\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u5b9e\u73b0\u4e86\u6c49\u5b57\u7f16\u7a0b\u3002
C\u8bed\u8a00\u662f\u4e00\u95e8\u9762\u5411\u8fc7\u7a0b\u7684\u8ba1\u7b97\u673a\u7f16\u7a0b\u8bed\u8a00\uff0c\u4e0eC++\uff0cJava\u7b49\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u6709\u6240\u4e0d\u540c\u3002

M++\u5c31\u662fM\u5148\u53c2\u4e0e\u8fd0\u7b97\u518d\u81ea\u589e1,++M\u662fM\u5148\u81ea\u589e1\u518d\u53c2\u4e0e\u8fd0\u7b97\u4e3e\u4e2a\u4f8b\u5b50\uff1a
\u5982\u679c\uff0cx=1,y=0,\u90a3\u4e48y=++x*++x\u7684\u503c\u662f\u591a\u5c11\u5462\uff1f
\u8fd9\u4e2a\u4f60\u8981\u5148\u660e\u767d\u8fd0\u7b97\u7684\u4f18\u5148\u7ea7:\u524d++\u8fd0\u7b97\u7684\u4f18\u5148\u7ea7\u9ad8\u4e8e*\u8fd0\u7b97,\u5373x\u5148\u81ea\u589e,\u518d\u53c2\u4e0e\u5176\u4ed6\u8fd0\u7b97.\u6240\u4ee5y=++x*++x\u5199\u7684\u660e\u786e\u70b9\u662f:y=(++x)*(++x),\u5c31\u662f\u8bf4,\u9009\u5bf9\u505a\u4e24\u4e2a++x,\u8fd9\u65f6x\u7684\u503c\u53d8\u6210\u4e863,\u518d\u505a*\u8fd0\u7b97,y\u7684\u503c\u4e3a9.
\u8fd8\u6709\u4e00\u79cd\u662f\u662f\u540e++,\u5373x++\u8fd9\u4e2a\u8fd0\u7b97\u540e\u4e8e*\u8fd0\u7b97,\u4e5f\u5c31\u662fx\u5148\u8fd0\u7b97,\u518d\u81ea\u589e,\u6240\u4ee5\u5982\u679c\u5199\u6210y=x++*x++,\u5219\u8fd0\u7b97\u540ey \u7684\u503c\u4e3a1,\u800cx\u662f3.
\u8fd9\u4e48\u8bf4\u4f60\u660e\u767d\u5417?

"&"是取址运算符,取变量在内存单元中的首地址,“&”取地址运算符的操作对象必须是内存单元(如变量、数组元素等)。
“*”是间接访问运算符,间接访问指针所指向的对象,“*”运算符的操作对象必须是指针(地址)。因此:
*C=&m是把m在内存中的地址赋给c这个指针指向的变量
c=&m是把m的地址赋给c这个指针

(1)若是在定义中:
语句 int *c=&m,m=4;
表示指针变量c指向m的地址;
(2)若是在执行中;
int m=6,n=10,*c=&n;
* c=&m;
则表示取变量m的地址赋给指针c所指对象n 的值
即 n的值由10变为6;

而c=&m,则表示把变量m的地址赋给c

*c=&m是把m的地址赋给c这个指针指向的指针或数值变量
c=&m是把m的地址赋给c这个指针

c++语言是c语言发展起来的,所以继承了c语言几乎所有的特点,但c++语言又有自己的个性。c语言是一种面向过程的编程语言,而c++主要是面向过程的,因此c++有类的概念,而c语言就没有。c++的功能强大,编译器复杂,适合高端程序的设计和编辑,c语言的编译器简易,适合低端程序。



扩展阅读:小学生学python还是c++ ... c++和python先学哪个 ... c++编程 ... c++中<< ... c++教程 ... c#m和弦指法图 ... c++视频教程 ... c++必背入门代码 ... 运算符&& ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网