初识指针

指针,我理解就是保存另一个变量的地址的变量。例如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 }

 

posted @ 2014-12-23 23:41  谭哥  阅读(112)  评论(0编辑  收藏  举报