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

飞控入门之C语言指针回顾

时间:2019-01-16 19:12:30      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:void   char   灵活   用法   size   --   rate   内存地址   数组   

指针

何为指针?来个官方定义:指针是一个值为内存地址的变量(或数据对象)。

一、指针的声明

 

//示例
int *pi;    //pi是指向int类型变量的指针
char *pc;   // pi是指向char类型变量的指针
float *pf;    // pi是指向float类型变量的指针

 

 

 

注意,指针的值虽然是地址,指针本身也是有自己的地址和大小的。在计算机中,指针的大小为8字节,在stm32中,为4字节。

二、指针的赋值与解引用

int num=2;
int *p;
p=#
printf("%d",*p);//结果输出为2

赋值要符合指针的定义,要向指针赋一个地址

三、指针的操作

int arr[5]={1,2,3,4,5};//数组名本身为一个指针

取址操作: &arr
自加自减,与整数相加减: arr++;  arr--;  arr+=2;  

            在本例中,指针与整数相加减时,它所指向的地址增加或减少整数个int的大小,如arr+=2储存ar[2]的地址

指针求差:相同类型指针之间可以相减,差值为整数个指针类型大小

四、指针与const

使用const可以保护数组的数据不被修改,相比于#define,const的用法更加灵活

const int days[3]={20,13,5};

此后数组的元素不能被修改,否则会报错

使用const的指针不能用于改变值

double rates[5]={20.3,465.2,23.9,45.6,28.6};
const double *pd=rates;

之后便不能通过指针pd改变数组元素的值,但因为数组没有用const定义,所以可以用rates改变元素。

void show_arr (const double *p,int n);

如果函数这样定义,那这个函数将不能改变要传入的数组

 

飞控入门之C语言指针回顾

标签:void   char   灵活   用法   size   --   rate   内存地址   数组   

原文地址:https://www.cnblogs.com/Traveler-Wind/p/10278615.html

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