c指针作为参数传递问题

来源:百度知道 编辑:UC知道 时间:2024/06/12 03:57:10
普通的变量有两种方法传递一值传递二是地址传递但是如果是指针呢?
如:main(){
char *p;
}
void foo(char ?)应该怎么写?问题一是应该&p或是*p或是*&p
问题二在指针的传递中还分值传递与地址传递吗?三请帮我解释一下我列举出的那三种方法都各自代表什么意识?非常感谢!

1、实际上,指针变量中保存的内容是一个地址值,当需要在函数foo()中使用这个地址值时,就使用值传递,此时定义foo(char *p);而当需要在函数foo()中使用这个地址值的地址时,就使用地址传递,此时定义foo(char **p)。
2、在指针的传递中,允许传递指针变量和指针变量的地址。这完全取决于使用者的需要。
3、使用&p和*&p分别表示传递的是一个变量引用,前者传递的是指针变量引用,后者传递的是指针变量地址的引用。使用*p则表示传递指针变量本身。

1、实际上,指针变量中保存的内容是一个地址值,当需要在函数foo()中使用这个地址值时,就使用值传递,此时定义foo(char *p);而当需要在函数foo()中使用这个地址值的地址时,就使用地址传递,此时定义foo(char **p)。
2、在指针的传递中,允许传递指针变量和指针变量的地址。这完全取决于使用者的需要。
3、使用&p和*&p分别表示传递的是一个变量引用,前者传递的是指针变量引用,后者传递的是指针变量地址的引用。使用*p则表示传递指针变量本身。