指针和变量赋值基础

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' - 因为看起来很奇怪