指针练习—变量交换2--C语言版
时间: 2023-10-02 20:06:39 浏览: 93
#include <stdio.h>
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int x = 10;
int y = 20;
printf("Before swap\nx = %d\ny = %d\n", x, y);
swap(&x, &y);
printf("After swap\nx = %d\ny = %d\n", x, y);
return 0;
}
相关问题
c语言指针练习题实验
在这个实验中,有三个源程序被引用。第一个源程序是用指针变量实现数的比较,输入两个整数,并使其从大到小输出。\[1\]第二个源程序是用指针法输入12个数,然后按每行4个数输出。\[2\]第三个源程序是用函数实现数的交换,输入两个整数,并使其从大到小输出。\[3\]
在第一个源程序中,通过指针变量p1和p2来比较两个整数的大小,并使用指针变量p来交换两个整数的值。最后输出a和b的值以及最大值和最小值。\[1\]
在第二个源程序中,使用指针变量p来遍历数组a,并按每行4个数的格式输出数组中的元素。\[2\]
在第三个源程序中,使用函数as来实现两个整数的交换。通过指针变量p1和p2来传递两个整数的地址,并在函数内部交换它们的值。最后输出a和b的值以及最大值和最小值。\[3\]
这些实验都是为了练习和理解C语言中指针的使用。通过这些实验,可以加深对指针的理解,并掌握指针在程序中的应用。
#### 引用[.reference_title]
- *1* *2* *3* [C语言实验十一 指针(一)](https://blog.csdn.net/qq_64314976/article/details/126123133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
c语言编程练习题指针、
### 回答1:
指针是C语言中非常重要的概念,它可以用来存储和操作内存地址。通过指针,可以直接访问或者修改内存中的数据。
在C语言中,有很多关于指针的编程练习题。下面我举两个简单的例子来说明:
1. 编写一个程序,使用指针将两个变量的值进行交换。
```
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10;
int y = 20;
printf("交换前:x=%d, y=%d\n", x, y);
swap(&x, &y);
printf("交换后:x=%d, y=%d\n", x, y);
return 0;
}
```
这个例子中,我们定义了一个交换函数`swap`,它接收两个指针参数,然后交换这两个指针所指向的值。在`main`函数中,我们定义了两个变量`x`和`y`,然后调用`swap`函数交换它们的值。
2. 编写一个程序,使用指针找到数组中的最大值和最小值。
```
#include <stdio.h>
void findMinMax(int *array, int size, int *min, int *max) {
*min = *max = array[0];
for (int i = 1; i < size; i++) {
if (array[i] < *min) {
*min = array[i];
}
if (array[i] > *max) {
*max = array[i];
}
}
}
int main() {
int array[] = {6, 2, 8, 1, 9, 4};
int min, max;
findMinMax(array, sizeof(array) / sizeof(int), &min, &max);
printf("最小值:%d\n", min);
printf("最大值:%d\n", max);
return 0;
}
```
这个例子中,我们定义了一个`findMinMax`函数,它接收一个整型数组、数组大小以及两个指针作为参数。函数中,我们使用两个指针来记录当前的最小值和最大值,并遍历数组,逐个比较更新最小值和最大值。在`main`函数中,我们声明了一个数组,并调用`findMinMax`函数来找到这个数组的最小值和最大值。
通过这些练习题,可以加深对指针的理解,并提高C语言编程的能力。当然,这只是两个简单的例子,实际上还有很多其他有趣和复杂的指针相关的编程题目等待我们去探索。
### 回答2:
指针在C语言编程中扮演着重要的角色,它允许我们直接访问内存地址,以便于对内存中的数据进行操作和管理。下面我将通过一个具体的编程练习题来展示指针的应用。
我们假设有一个整型数组arr,数组中存储了10个整数。现在我们要编写一个函数,该函数接受一个指针参数,用于将数组中的每个元素都加1。
首先,我们定义一个函数addOne,该函数接受一个整型指针作为参数,并且没有返回值。函数体内,我们使用for循环来遍历数组的每个元素,对每个元素执行加1操作。示例代码如下:
```c
void addOne(int* ptr) {
int i;
for(i=0; i<10; i++) {
*(ptr + i) += 1;
}
}
```
在主函数中,我们创建一个整型数组arr,并将其传递给addOne函数。这样,函数内部对数组进行的加1操作就会生效。示例代码如下:
```c
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
printf("加1前的数组:");
for(int i=0; i<10; i++) {
printf("%d ", arr[i]);
}
addOne(arr);
printf("\n加1后的数组:");
for(int i=0; i<10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行这段代码,输出的结果将是:
加1前的数组:1 2 3 4 5 6 7 8 9 10
加1后的数组:2 3 4 5 6 7 8 9 10 11
通过这个练习题,我们可以看到指针的作用。指针可以传递数组的首地址给函数,在函数内部使用指针对数组进行操作,使得函数可以修改数组的元素。这样的操作提高了程序的效率和灵活性,并在一些场景下十分有用。