通过地址不足:
因为指针解引用比直接访问值慢,访问参数传递的地址比访问参数通过值传递慢。
可能这句话可能应该如下:
因为指针解引用比直接访问值慢,访问参数传递的地址比访问参数通过引用传递慢。
我想(我假设),参数通过值将长是因为他们已被复制。
[原来参考通常由编译器实现的(引擎盖下)使用指针。因此,引用没有解决任何更快。他们只是有一个良好的语法,并使用安全。
我所注意的是传递一个数组时,它的地址变化,指针指向当里面的函数的地址。这使得原有的价值不会改变。我想这只是它是如何工作的。
【好问题和洞察力。事实上,指针参数是按值传递的。因此,如果你想改变一个指针指向里面的一个函数,它的改变一个变量的局部相同的——只要你离开的功能,它将恢复到它是什么。然而,如果你解引用指针和改变它所指向的值,不会被还原。如果你真的希望能够改变一个指针指向在一个函数的地址,最好的办法是按引用传递指针本身:
无效的函数(char *和地址)
顺便说一句,这行代码是危险的:
地址=“B”
这是地址的设置“地址”变量地址的“B”。“B”的地址是什么?”B”不是一个变量,所以这真的没有任何意义。它可能工作在这种情况下,由于编译器处理字符串的方式,但我肯定不愿意相信它。亚历克斯。
关于这一问题的见解?顺便说一句,我知道字符串数组不是数组但指针,但再一次,这真的是一个当使用字符串数组?只是不同的语法对吗?
【在C语言中,数组和指针是非常一致的。当你声明一个数组,你要做的是建立一个指针,你的内存分配开始。如果我读你的上述声明是正确的,你的理解是正确的。这意味着你可以做这样的事:
中字符[] =“你好,世界”;/创建一个静态数组