C语言 指针与数组

指针与数组

一、 用指针指向数组

指针既可以指向整个数组也可以指向某个数组元素

int arr[3] = {1,3,5,2};
int *p1 = arr;
//这里的p1也就为&arr[0]
int *p2 = &arr[2];//这里指向了数组的第三个元素

int i = *p2;
//这里就是i = 5

/*
注意:*p1的值为多少? p1指向的为arr[0] 因此,*p1也就是1
*/

二、指针操作数组

指针可以访问数组的内存地址,所以数组也可以修改数组的元素值

1、修改数组元素

int arr[] = {1,2,5,3};
int *p = arr;

*p = 10;
printf("%d",arr[0]);

2、遍历数组

int arr[5] = {1,2,3,7,4};]
int *p =arr;
for(int i = 0; i < 5; i++) {
  printf("%-4d",*(p+i));  //通过*来取值
}

三、指针与字符串

char  str[] ="hello";

char *p = str;

printf("%s",p);  

面试题目

去除字符串中的数字

char str[] = "0ABC12EE1";

 char *p = str;

    int i = 0;

    while (*p) {

        if (*p > '9' || *p < '0') {

            str[i++] = *p;

        }

        p++;

    }

    str[i] = '\0';

  

 

posted @ 2014-10-24 20:09  杯水文圣  阅读(169)  评论(0编辑  收藏  举报