新手疑惑:
int a=10;
int *p=&a;
*p=20; //这样我们就知道把a的值就改成了20
我现在的疑惑就是,a直接赋值等于20,与直接给指针变量赋值修改a的值,这两者在效果上都是一样的,而且我认为指针变量完全是多余,绕过弯子。那么指针变量修改内存地址的值所说的高效简洁,应该怎么理解呢?
C语言用指针变量去修改变量的值比变量直接赋值效率高吗
答案:2 悬赏:0 手机版
解决时间 2021-03-13 07:39
- 提问者网友:沉默菋噵
- 2021-03-12 11:30
最佳答案
- 五星知识达人网友:逐風
- 2021-03-12 12:33
对于你的例子,是否使用指针效率是一样的,没有区别。
指针的高效简洁体现在对复杂对象的操作上,
高效,比如传递一个类,如果使用地址传递,实际上只传递一个int大小的地址,而对象传递,则需要大量的内存空间复制一个临时对象。
简洁,体现在代码的灵活上,也不是针对单一的简单数据类型操作,今后的编程中,你经常可以看到类似这样的语句:while(*p++) {...} 代码比不使用指针要简洁。
指针的高效简洁体现在对复杂对象的操作上,
高效,比如传递一个类,如果使用地址传递,实际上只传递一个int大小的地址,而对象传递,则需要大量的内存空间复制一个临时对象。
简洁,体现在代码的灵活上,也不是针对单一的简单数据类型操作,今后的编程中,你经常可以看到类似这样的语句:while(*p++) {...} 代码比不使用指针要简洁。
全部回答
- 1楼网友:长青诗
- 2021-03-12 12:59
对
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯