指针和变量赋值基础
Pointers and variables assignment basic
我正在尝试了解指针的基础知识,并完成了这段代码:
int c = 3;
int try(int a){
++a;
return 0;
}
int main(){
try(c);
printf("%d\n",c);
return 0;
}
如何使用指针打印 4?我知道我可以这样做:
int c = 3;
int try(int a){
++a;
return a;
}
int main(){
c = try(c);
printf("%d\n",c);
return 0;
}
但我真的很想学习如何通过指针通过函数传递这些值。
此外,任何关于扎实的 C 语言学习的好书推荐总是受欢迎的。提前致谢。
int c = 3;
void pass_by_ref(int *a) // Take a Pointer to an integer variable
{
++(*a); // Increment the value stored at that pointer.
}
int main(){
pass_by_ref(&c); // Pass the address of the variable to change
printf("%d\n",c);
return 0;
}
这是怎么做的'c style pass by reference'
int tryIt(int *a){
++(*a);
}
int main(){
int c = 3;
tryIt(&c);
printf("%d\n",c);
return 0;
}
您将指针传递给变量,并在函数中取消引用指针。该函数有效地 'reaches out ' 其作用域来修改传递的变量
请注意,我将 c 移到了 main 中。在您的原始代码中,'try' 可以修改 c 本身,因为它在全球范围内。
并将 'try' 更改为 'tryIt' - 因为看起来很奇怪
我正在尝试了解指针的基础知识,并完成了这段代码:
int c = 3;
int try(int a){
++a;
return 0;
}
int main(){
try(c);
printf("%d\n",c);
return 0;
}
如何使用指针打印 4?我知道我可以这样做:
int c = 3;
int try(int a){
++a;
return a;
}
int main(){
c = try(c);
printf("%d\n",c);
return 0;
}
但我真的很想学习如何通过指针通过函数传递这些值。
此外,任何关于扎实的 C 语言学习的好书推荐总是受欢迎的。提前致谢。
int c = 3;
void pass_by_ref(int *a) // Take a Pointer to an integer variable
{
++(*a); // Increment the value stored at that pointer.
}
int main(){
pass_by_ref(&c); // Pass the address of the variable to change
printf("%d\n",c);
return 0;
}
这是怎么做的'c style pass by reference'
int tryIt(int *a){
++(*a);
}
int main(){
int c = 3;
tryIt(&c);
printf("%d\n",c);
return 0;
}
您将指针传递给变量,并在函数中取消引用指针。该函数有效地 'reaches out ' 其作用域来修改传递的变量
请注意,我将 c 移到了 main 中。在您的原始代码中,'try' 可以修改 c 本身,因为它在全球范围内。
并将 'try' 更改为 'tryIt' - 因为看起来很奇怪