1159: 最大的两个数(指针专题)
时间: 2023-04-27 09:01:15 浏览: 70
这道题目需要使用指针来解决。我们可以定义两个指针变量,分别指向数组中的最大值和次大值。然后遍历数组,如果当前元素大于最大值,则将最大值指针指向该元素;如果当前元素大于次大值但小于最大值,则将次大值指针指向该元素。最后输出最大值和次大值即可。
相关问题
std::function转函数指针
```cpp
#include <iostream>
#include <functional>
void foo() {
std::cout << "Hello, World!" << std::endl;
}
int main() {
std::function<void()> func = foo; // 将函数foo赋值给std::function对象func
func(); // 调用std::function对象func,输出:Hello, World!
void (*funcPtr)() = func.target<void(*)()>(); // 将std::function对象func转换为函数指针
funcPtr(); // 通过函数指针调用函数foo,输出:Hello, World!
return 0;
}
```
在上面的示例中,我们首先定义了一个名为`foo`的函数。然后,我们使用`std::function`将函数`foo`赋值给了一个`std::function<void()>`类型的对象`func`。接下来,我们通过调用`func()`来调用`foo`函数。
要将`std::function`转换为函数指针,我们可以使用`target`成员函数。在示例中,我们使用`func.target<void(*)()>()`将`func`转换为函数指针,并将其赋值给`funcPtr`。然后,我们可以通过调用`funcPtr()`来调用`foo`函数。
1161: 字符串长度(指针专题)
对于字符串长度的求解,有多种方法可以实现。其中一种常见的方法是使用指针。
下面是一个使用指针计算字符串长度的示例代码:
```c
#include <stdio.h>
int strlen(const char* str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
int main() {
char str[] = "Hello, world!";
int length = strlen(str);
printf("The length of the string is %d\n", length);
return 0;
}
```
在上面的代码中,我们定义了一个名为 `strlen` 的函数,它接收一个指向字符数组的指针 `str`。通过遍历字符串数组,每次将指针向后移动一个位置,并且在每次移动后将计数器 `len` 加一,直到遇到字符串的结尾符 `\0`。
在 `main` 函数中,我们声明一个字符串数组 `str`,并将其作为参数传递给 `strlen` 函数,最后打印出字符串的长度。
这段代码的输出结果应该是:`The length of the string is 13`。
希望对你有所帮助!如果还有其他问题,请随时提问。