首页 > 编程语言 > 详细

C语言指针学习

时间:2020-05-29 19:37:52      阅读:58      评论:0      收藏:0      [点我收藏+]

一、明确几个符号

1、&取地址符,*取值符

二、定义指针变量风格

1、char *a

别用cha* a=NULL,容易引起歧义

例如char* a , b;//其实是定义指针a,和char型变量b。

定义多个指针用:

char *a = NULL,*b = NULL;

2、定义指针时初始化

因为指针a到底指向哪里,我们不知道。随便改变这个地址的值,可能导致一些有用的数据被「莫名其妙地修改」。

char *buf = NULL; 

三、数组名其实就是一个「地址信息」,实际上就是数组「第一个元素的地址」

char a[100];    
//&a[0] 和 a一样,都是数组的第一个元素的地址

四、指向数组的指针

1、这是个宏观概念,“指向数组”并不是指针就是数组,你可以理解为将指针和数组联系起来。一般我们将指针指向数组第一个元素的地址,其实指向数组的任何一个变量的地址都是可以的。

char a[100];    
char *p = NULL    
//方法一:
p = a;
//方法二:
p = &a[0];

2、当指针指向数组元素的时候,可以对指针变量进行「加减」运算,+n表示指向p指针所指向的元素的「下n个元素」,-n表示指向p指针所指向的元素的「上n个元素」。并不是将地址加1。 

3、其实使用指针法来访问数组的元素,不一定需要定义一个指向数组的单独的指针变量,因为数组名自身就是指向数组「第一个元素」的指针,因此指针法可以直接作用于数组名:

C语言指针学习

原文:https://www.cnblogs.com/chenjian688/p/12989166.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!