C语言用指针变量去修改变量的值比变量直接赋值效率高吗

新手疑惑:
int a=10;
int *p=&a;
*p=20; //这样我们就知道把a的值就改成了20
我现在的疑惑就是,a直接赋值等于20,与直接给指针变量赋值修改a的值,这两者在效果上都是一样的,而且我认为指针变量完全是多余,绕过弯子。那么指针变量修改内存地址的值所说的高效简洁,应该怎么理解呢?

对于你的例子,是否使用指针效率是一样的,没有区别。
指针的高效简洁体现在对复杂对象的操作上,
高效,比如传递一个类,如果使用地址传递,实际上只传递一个int大小的地址,而对象传递,则需要大量的内存空间复制一个临时对象。
简洁,体现在代码的灵活上,也不是针对单一的简单数据类型操作,今后的编程中,你经常可以看到类似这样的语句:while(*p++) {...} 代码比不使用指针要简洁。
温馨提示:答案为网友推荐,仅供参考
相似回答