① c语言用指针比较快是不是因为直接访问寻找变量需要的时间比较多 而指针直接从地址访问就不用寻址费时了
用指针不是减少了寻址的时间,是省略了计算地址的步骤,要做的工作少了,所以说速度快。
用指针比较快,这个概念有点过时了。现在的编译器,代码优化的效率是很高的,在设定高优化级别的情况下,两者几乎没有差别。另一方面,使用指针编程相对复杂,更容易导致潜在的错误,就软件工程的角度来看,牺牲可靠性来换取速度的小量提升(甚至速度没有提升)是划算的。
结论,减少指针的使用,使用索引就很好。要想提升执行速度,编译的时候把优先级别设的高一点就可以了。
② 为什么c语言指针运算速度快
采用指针的话!寻址速度更快啊!
③ c语言用指针取值比用数组名取值快吗
指针快
只不过现在计算机快了,几乎没有区别。
④ 在c语言中 指针写起来麻烦。位运算也不知道是什么用 听说 是让程序变快 是这样吗
指针确实很麻烦,用起来可以说利弊各占一半吧。不过还是要多用。而位运算,确实使程序变快了,由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。有很多经典应用,建议您去网络查一些资料。
⑤ C语言 为什么用指针变量效率较高
指针变量是有加减运算的,但是要注意以下几点:
1.指针变量中存放的是地址值,也就是一个数字地址,例如某指针变量中的值是0x20000000,表示表示此指针变量存放的是内存中位于0x20000000地方的内存地址。指针变量可以加减,但是只能与整型数据加减,此时加减的含义并不是其地址值进行了加减,也就是说如果指针变量p的值是0x20000000,那么p=p+2;的值并不是0x20000002,并不是地址值的简单相加,那么地址值加减多少是与指针指向的数据类型相关联的,如果在32位的操作系统上,p是指向整型数据的指针变量,那么p=p+2之后,p的地址值变成0x20000008,也就说实际上地址值加了多少呢:sizeof(int)*2这么多。说明白点,我们加减的数字是以指针指向的数据类型为量度的,P+2表示p在内存中前移两个int的距离,如果p不是int类型,而是其他类型道理也是一样。同样指针与整型数据相减也是同样的道理。
2.指针之间可以相减,但不可以相加:两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数),例如对于int类型的指针p和p1. p1-p的意义表示他们之间相隔多少个int类型的元素。同样对于其他类型的指针变量之间相减的意义也是一样。 指针变量的自加和自减实际上是与整数1的加减运算。
3.指针之间可以比较大小。但是同样也限于两个相同类型的指针变量,不同类型的指针变量之间比较大小没有任何意义。指针之间的大小比较的意义,表示在内存中他们指向的位置的高低关系。
如果还没解决你的问题,可以加我网络HI账号。
⑥ c语言为什么比其它语言快
因为c语言可以直接操作内存里的数据,比如你定义了一个变量i ,int i= 8; 你就可以找到它的地址,在内存里找到储存的8。然后你可以定义一个指针p,修改这个i的值。
#include <stdio.h>
int main()
{
int i = 8;
printf("%d\n",i);
int *p =&i;
*p =10;
printf("%d\n",i);
}
其他的java等等,都不能看到这个地址。。。
⑦ 为啥c语言要有指针
C语言没有像高级语言那样的引用类型,所以,在使用参数时,往往只能通过复制参数值来传递,即所谓的值传递,但是这样就造成了内存的浪费等诸多原因,指针为C语言提供了一种可以使用地址传递值的方法,在运行过程中,操作的将是原始的数据,而不是数据的拷贝。
⑧ 都说c语言指针功能强大,我怎么体会不到呢
首先要明确C语言的用处
C语言现在在大多数IT行业里认为是非主流的,因为大多数IT行业是互联网公司,多数用java等面向对象的语言,他们的重点不在速度不在效率。
但是实际上C语言只是在大家不熟悉的地方使用,比如windows和linux的内核,比如通信行业的流传输。这些基本上都是C语言在搞,因为java之中面向对象的语言无法满足这些地方的效率,而只有C这类高效率的面向过程的语言才能满足这类需求。
什么是面向过程,通俗点讲就是细节,一个人是由胳膊腿躯干头组成的(java),血管和肌肉就是细节(c)。四肢的移动速度可以按秒计算,血液的流动怎么按秒计算呢?
那为什么C语言的效率高呢,最直接的表现就是指针。
你举得例子a=b和*p=b是一样的,这个没问题,java一般都是a=b这么用,换算成指针就是*p=b。但是C语言大部分的赋值都不会考虑*p=b,为什么,因为效率低,C语言一般是p=&b这么来写,我不需要赋值,我只是搬运工,如果b这个结构体有1M这么大,那a=b相当于拷贝了1M的内存而p=&b只不过一个四字节的内存操作而已,前者也许要耗费1ms,后者如果按字节数来算的话 你可以想象效率提高了多少数量级。
更别说什么回调函数啊,结构体里存指针比存整个结构体省内存啊之类的了。