📅  最后修改于: 2023-12-03 15:14:25.574000             🧑  作者: Mango
本篇文章将介绍C和C++中的指针,并涵盖了指针的简介、算术和数组等方面的内容。
指针是一种变量,它存储了一个内存地址。通过使用指针,程序可以直接访问和操纵内存中的数据。指针可以被用于动态内存分配、函数参数传递和数组操作等场景。
在C和C++中,可以使用*
声明一个指针变量,并使用&
获取一个变量的地址。例如:
int num = 10;
int *p; // 声明一个指向整数的指针
p = # // 将变量num的地址赋值给指针p
指针算术允许对指针进行加法、减法和比较运算。这些算术运算对于遍历数组和访问内存块非常有用。
加法:指针加上一个整数会导致指向相应内存位置的指针。例如:
int arr[] = {1, 2, 3, 4, 5};
int *p = arr; // 指向数组的第一个元素
p = p + 2; // 移动指针到第三个元素
减法:指针减去一个整数会导致指向相应内存位置的指针。例如:
int arr[] = {1, 2, 3, 4, 5};
int *p = &arr[4]; // 指向数组的最后一个元素
p = p - 2; // 移动指针到第三个元素
比较:指针可以进行大小比较运算,例如<
、>
、==
等。
指针和数组在C和C++中有着紧密的联系。事实上,数组名本身就是一个指向数组第一个元素的指针。
可以通过指针来遍历数组元素,也可以通过指针进行数组元素的赋值和访问。
int arr[] = {1, 2, 3, 4, 5};
int *p = arr; // 指向数组的第一个元素
// 遍历数组并输出每个元素
for(int i = 0; i < 5; i++) {
cout << *p << endl; // 输出指针当前位置的值
p++; // 移动指针到下一个位置
}
可以使用指针作为函数参数,实现对数组的传递和修改。
void modifyArray(int *arr, int size) {
for(int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
modifyArray(arr, size);
// 输出修改后的数组
for(int i = 0; i < size; i++) {
cout << arr[i] << endl;
}
return 0;
}
以上就是关于C和C++中指针的简介、算术和数组的介绍。指针是C和C++中重要的概念,熟练掌握指针的操作对于程序员来说是非常重要的。