静态函数接收一个全局参数
时间: 2023-11-17 22:05:00 浏览: 43
静态函数可以接收全局参数,因为静态函数可以访问全局变量。在静态函数中,可以通过全局变量的名称访问全局变量的值。但是,需要注意的是,静态函数不能直接修改全局变量的值,因为全局变量是在程序的所有部分中都可见和可访问的。如果需要在静态函数中修改全局变量的值,需要使用指向全局变量的指针作为参数传递给静态函数,并在函数中通过指针修改全局变量的值。
相关问题
全局变量的指针作为参数传递给静态函数
当全局变量的指针作为参数传递给静态函数时,静态函数可以通过指针访问和修改全局变量的值。以下是一个示例:
```c++
#include <iostream>
using namespace std;
int global_var = 10;
static void static_func(int* ptr)
{
*ptr = 20;
}
int main()
{
cout << "global_var before function call: " << global_var << endl;
static_func(&global_var);
cout << "global_var after function call: " << global_var << endl;
return 0;
}
```
在这个示例中,静态函数 `static_func` 接收一个指向 `global_var` 的指针作为参数,并将其值改为 `20`。在 `main` 函数中,我们调用 `static_func` 并传递一个指向 `global_var` 的指针。输出结果如下:
```
global_var before function call: 10
global_var after function call: 20
```
可以看到,通过静态函数修改了全局变量的值。
用c语言写一个景区录入系统函数
好的,以下是一个简单的景区录入系统的函数示例,使用了 C 语言编写:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20 // 景点名称的最大长度
#define MAX_DESC_LEN 100 // 景点描述的最大长度
#define MAX_SPOT_NUM 10 // 最多可录入的景点数
// 景点结构体
typedef struct {
char name[MAX_NAME_LEN]; // 景点名称
char desc[MAX_DESC_LEN]; // 景点描述
int rating; // 评分
} Spot;
// 景点数组
Spot spots[MAX_SPOT_NUM];
int spot_count = 0; // 已录入的景点数量
// 添加景点函数
void add_spot() {
// 输入景点名称
char name[MAX_NAME_LEN];
printf("请输入景点名称:");
scanf("%s", name);
// 输入景点描述
char desc[MAX_DESC_LEN];
printf("请输入景点描述:");
scanf("%s", desc);
// 输入景点评分
int rating;
printf("请输入景点评分(1-5):");
scanf("%d", &rating);
// 创建景点结构体
Spot new_spot;
strcpy(new_spot.name, name);
strcpy(new_spot.desc, desc);
new_spot.rating = rating;
// 将景点添加到数组中
spots[spot_count] = new_spot;
spot_count++;
printf("景点添加成功!\n");
}
// 显示所有景点函数
void show_spots() {
if (spot_count == 0) {
printf("当前没有录入任何景点。\n");
return;
}
printf("景点列表:\n");
for (int i = 0; i < spot_count; i++) {
printf("%d. %s(评分:%d)\n", i+1, spots[i].name, spots[i].rating);
printf(" %s\n", spots[i].desc);
}
}
int main() {
printf("欢迎使用景区录入系统!\n");
while (1) {
// 显示菜单
printf("\n请选择操作:\n");
printf("1. 添加景点\n");
printf("2. 显示所有景点\n");
printf("3. 退出\n");
// 接收用户选择
int choice;
scanf("%d", &choice);
// 执行用户选择的操作
switch (choice) {
case 1:
add_spot();
break;
case 2:
show_spots();
break;
case 3:
printf("谢谢使用,再见!\n");
return 0;
default:
printf("无效的选择,请重新输入。\n");
}
}
}
```
该程序中定义了一个结构体 `Spot`,用于表示每个景点的信息,包括名称、描述和评分。使用了一个静态数组 `spots` 来存储已录入的景点,最多可以存储 `MAX_SPOT_NUM` 个景点。使用了一个全局变量 `spot_count` 来记录已录入的景点数量。程序中包含了两个主要函数:`add_spot()` 用于添加景点,`show_spots()` 用于显示已录入的所有景点。在主函数中,使用了一个无限循环来等待用户的操作选择,支持添加景点、显示所有景点和退出操作。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)