【编程语言 · C语言 · 指针和函数】

指针与函数

指针大大扩展了功能的可能性。我们不再局限于返回一个值。使用指针参数,你的函数可以更改实际数据,而不是数据副本。

要更改变量的实际值,调用语句将地址传递给函数中的指针参数。

例如,以下程序交换两个值:

void swap (int *num1, int *num2);

int main() {
  int x = 25;
  int y = 100;

  printf("x is %d, y is %d\n", x, y); 
  swap(&x, &y);
  printf("x is %d, y is %d\n", x, y); 

  return 0;
}
 
void swap (int *num1, int *num2) {
  int temp;

  temp = *num1;
  *num1 = *num2;
  *num2 = temp;
}

程序交换变量的实际值,因为函数使用指针按地址访问它们。

【单选题】该代码的输出是什么?

#include

void test(int * x) {
*x += *x/2;
}

int main() {
int v = 8;
test(&v);
printf("%d", v);
}

8

4

6

12

补充:

如何使用指针?

使用指针时会频繁进行以下几个操作:定义一个指针变量、把变量地址赋值给指针、访问指针变量中可用地址的值。这些是通过使用一元运算符 * 来返回位于操作数所指定地址的变量的值。下面的实例涉及到了这些操作:

#include 
int main (){   int  var = 20;   /* 实际变量的声明 */   int  *ip;        /* 指针变量的声明 */
   ip = &var;  /* 在指针变量中存储 var 的地址 */
   printf("Address of var variable: %x\n", &var  );
   /* 在指针变量中存储的地址 */   printf("Address stored in ip variable: %x\n", ip );
   /* 使用指针访问值 */   printf("Value of *ip variable: %d\n", *ip );
   return 0;}

你可能感兴趣的:(c语言)