哪些代码适合?为什么?
代码1:
void fun(int *p)
{
*p=200;
}
main(){
int *i_ptr;
fun(i_ptr);
printf("%d", *i_ptr);
}
代码2:
void fun(int *p)
{
*p=200;
}
main(){
int i;
fun(&i);
printf("%d", i);
}
可以传递指针的地址吗?
答案 0 :(得分:1)
你问:
哪些代码适合?为什么?
第一个将导致未定义的行为,因为i_ptr
尚未初始化为指向有效的内存。
您可以将其更改为:
int main(){
int i;
int *i_ptr = &i;
fun(i_ptr);
printf("%d", *i_ptr);
}
就可以了。
顺便说一下,我还添加了int
作为main
的返回类型。
您还问:
是否可以传递指针的地址?
我很清楚这个问题是如何与您发布的代码相关的。