码迷,mamicode.com
首页 > 编程语言 > 详细

C语言中的指针

时间:2015-05-08 23:25:24      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

请先看C++中的指针概述,这里只是扩充

数组指针

  其实这里主要说的就是c++中的指针运算

/*
 
 数组元素指针:
    一个变量有地址,一个数组包含若干个元素,每个数组元素都有相应的地址,
    指针变量可以指向数组元素(把某一元素的地址放到一个指针变量中)
    所谓数组元素的指针就是数组元素的地址
    可以用一个指针变量指向一个数组元素
 
    int a[10]={1,2,3,4,5,6,7,3,2,3};
    
    int *p;
    
    p=&a[0]; 等同与 p=a; 等同与 int *p=a; 等同与 int*p=&a[0]
 
    注意:
    1) 数组名a不代表整个数组,只代表数组首元素的地址
       p=a 的作用是"把a数组的首元素的地址赋给指针变量p",而不是"把数组a各个元素的值赋给p"
 
 
 数组指针:
    指向数组元素的指针
 
 数组指针的作用:
    使用数组指针间接访问数组的元素

 数组指针的定义:
    int *p;

 数组指针的初始化;
 
    int a[4] ={1,2,3,4};
    int *p = a;//数组指针,定义了一个指针变量p赋值数组的首地址(第一个元素的地址),P指向数组的第一个元素
    
    int *p = &a[0];//等价上面一句话
 
 数组指针如何访问数组的元素:
    1) p+1 表示指向数组的下一个元素
    2) p-1 指向数组的上一个元素
 
 误区:
    用数组指针遍历数组
    for(int i=0;i<4; i++){
        printf("%d\t",*p++);
    }
 
    //学习的误区: 数组名 a 是一个常量 等同与 *(10++)
    //数组名++ 这是错误的
    printf("*a=%d\n",*a++);//这种写法是错误的
 
 
 */

  

C语言中的指针

标签:

原文地址:http://www.cnblogs.com/developer-wang/p/4488993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!