用CPP写出函数指针、返回指针的函数、指向常数的指针、指针常量。
时间: 2023-12-11 20:03:29 浏览: 67
函数指针:
#include <iostream>
using namespace std;
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int main() {
int (*p)(int, int); // 声明一个函数指针,指向参数为两个整数,返回值为整数的函数
p = add; // 将函数指针指向add函数
cout << p(2, 3) << endl; // 输出 5
p = sub; // 将函数指针指向sub函数
cout << p(3, 2) << endl; // 输出 1
return 0;
}
返回指针的函数:
#include <iostream>
using namespace std;
int* getArray() {
int* p = new int[5]; // 定义一个动态分配内存的指针
for (int i = 0; i < 5; i++) {
p[i] = i; // 对指针指向的内存进行初始化
}
return p; // 返回指针
}
int main() {
int* p = getArray(); // 调用函数获取动态分配内存的指针
for (int i = 0; i < 5; i++) {
cout << p[i] << " "; // 输出指针指向的内存
}
delete[] p; // 释放动态分配的内存
return 0;
}
指向常量的指针:
#include <iostream>
using namespace std;
int main() {
const int* p; // 声明一个指向常量的指针
int a = 10, b = 20;
p = &a; // 将指针指向a
cout << *p << endl; // 输出 10
// *p = 20; // 错误,无法修改指向常量的指针指向的内存
p = &b; // 将指针指向b
cout << *p << endl; // 输出 20
return 0;
}
指针常量:
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
int* const p = &a; // 声明一个指针常量,指向a,无法修改指针指向的地址
cout << *p << endl; // 输出 10
*p = 20; // 可以修改指针指向的内存
cout << *p << endl; // 输出 20
// p = &b; // 错误,无法修改指针常量的指向地址
return 0;
}
相关推荐


















