C语言中关于指针的指针笔试题
时间: 2023-06-26 18:05:12 浏览: 161
以下是一道关于指针的指针的C语言笔试题:
```c
int main() {
int a = 10;
int *p1 = &a;
int **p2 = &p1;
printf("%d\n", **p2);
return 0;
}
```
请问上述代码的输出结果是什么?
答案:输出结果为 10。
解析:p1是指向a的指针,p2是指向p1的指针,所以通过p2可以访问a的值。因此,`**p2`表示访问p2所指向的指针p1所指向的变量a的值,即输出结果为10。
相关问题
请列出5道C语言中关于指针的指针笔试题
1. 编写一个函数,可以将一个整数数组中的元素按照升序排序,并将排序后的数组通过指针返回。
2. 编写一个函数,可以将两个字符串拼接起来,并将结果通过指针返回。
3. 编写一个函数,可以计算两个整数的和,并将结果通过指针返回。
4. 编写一个函数,可以将一个字符串进行反转,并将反转后的字符串通过指针返回。
5. 编写一个函数,可以将一个整数数组中的元素进行去重操作,并将去重后的数组通过指针返回。
请列出5道C语言关于指针的指针的笔试题并给出回答
1. 什么是指向指针的指针?
```
指向指针的指针是一个指针,它指向的对象是另一个指针的地址。
```
2. 如何声明指向指针的指针?
```
可以使用两个星号来声明指向指针的指针,例如:int **ptr。
```
3. 如何访问指向指针的指针指向的值?
```
可以使用两个星号运算符来访问指向指针的指针指向的值,例如:**ptr。
```
4. 指向指针的指针有什么实际用途?
```
指向指针的指针可以用于动态分配内存和多级数据结构的访问,例如链表、树等。
```
5. 编写一个程序,使用指向指针的指针来交换两个整数变量的值。
```c
#include <stdio.h>
void swap(int **p1, int **p2) {
int *temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int a = 1, b = 2;
int *ptr1 = &a, *ptr2 = &b;
printf("Before swap: a=%d, b=%d\n", a, b);
swap(&ptr1, &ptr2);
printf("After swap: a=%d, b=%d\n", a, b);
return 0;
}
```
阅读全文