嵌入式——C语言:指针②
一、指针和数组
(一)数组和指针的关系:
1.数组的数组名是指向数组第一个元素的指针常量
2.数组的数组名a可以理解为int*型(两种特殊情况不能理解int*型)
2.1sizeof:sizeof(a) == 20 ,sizeof(int *) ==8
2.2&: &a == int(*)[5] , &int*== int**
(二)数组的本质
int a[5]:
1.开辟20个字节空间,常量a表示空间首地址
2.当访问a[i]元素时,等价于*(a+i),能操作对应的空间
(三)数组作为函数参数
1.三种传递形式
(四)字符型数组及字符串的传递
1.字符串传递:int fun(char *pstr);
2.字符串的遍历
二、const指针
const指针形式
(一)第一种和第二种形式等价(const修饰*p)
指针变量p的值可以改变,但是不能利用p修改指向空间中的值
(二)第三章(const修饰p)
指针变量p的值不可以改变,但是可以利用指针p修改指向空间中的值(要在初始化时赋值,否则后续无法赋值)
(三)第四种和第五种等价(const即修饰*p由修饰p)
p和*p所指向的空间值都不能改变(要在初始化时赋值)
(四)strcpy:是将后面的字符串赋值给前面指针所指向的空间