C语言指针入门
指针可以说是C语言的灵魂,下面初步探讨指针。
指针概念
指针(pointer)是一个值为内存地址的变量,该内存地址为另一变量的存储地址。
间接运算符 *
* 运算符可以解引用出指定地址的值,如 *a 为解引用出a地址上的值。注意: * 为单目运算符且要用于地址上。一般把这种存储地址的变量称为指针类型变量。
声明指针
格式: 指针所指向的变量值类型 * 指针变量名。
如: int * pa; //声明一个指向整型变量pa。
const int * const pa; //声明一个值和指向对象的值都不能更改的指针变量
指针赋值
注意:指针所指向的对象只能是变量。
*pa=6 //输出无反应
指针与数组
数组名为数组第一个元素的地址。
以下为相等关系
1 | *a = a[0]; |
数值地址与字符地址
数值地址加1,根据数字对应变量类型不同,实际移动的距离是sizeof(type)。
字符地址加1,实际移动的距离是sizeof(char),即实际移动的距离为1。
实例
构造个交换变量元素的函数
1 | void interchange(int * u, int, * v) |
二维数组求和
1 | int sum(int rows, int cols, int arr[rows][cols]) //采用变长数组 |
总结
C语言的指针很灵活且功能强大,本文章旨在初步引入指针的功能,还有更多有趣的内容等待发现。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AMZ Blog!