指针,我理解就是保存另一个变量的地址的变量。例如int x,这个变量,它的内存地址可以用&x这个表达式得到。
如果要利用这个内存地址来处理x的话,可以利用*x来作为它的指针,*x就是存储x内存地址的变量。例如:
对*x进行操作: *x = 5 那么就把5这个值放到来这个指针指向的内存位置,也就是x变量。下面的代码用来获得数组的最大值。
1 #include <stdio.h> 2 3 void max(int list[], int len, int *x) // x means max 4 { 5 *x = list[0]; 6 for (int i=1; i<len; i++) 7 { 8 if (*x < list[i]) 9 *x = list[i]; 10 } 11 } 12 13 14 int main(void) 15 { 16 int list[] = {1,2,3,5,7,8,12,34,56}; 17 int x; 18 printf("x before func max: x = %d\n", x); 19 max(list, sizeof(list)/sizeof(list[0]), &x); 20 printf("max = %d\n", x); 21 return 0; 22 }
时间: 2024-10-05 06:58:26