定义一下几种变量:(1)含有10个元素的指针数组;(2)数组指针:(3)西数指针;(4)指向函数的指针数组
时间: 2024-01-04 19:02:28 浏览: 31
1. 含有10个元素的指针数组:这是一个数组,其中每个元素都是指针类型,数组中共有10个元素。可以定义为:`int* ptr_arr[10];`,其中`int*`可以替换为任何指针类型。
2. 数组指针:这是一个指针,指向一个数组。可以定义为:`int (*ptr_arr)[10];`,其中`int`可以替换为任何数据类型,`[10]`表示指向的数组有10个元素。
3. 结构指针:这是一个指针,指向一个结构体。可以定义为:`struct MyStruct* ptr_struct;`,其中`MyStruct`为结构体类型。
4. 指向函数的指针数组:这是一个数组,其中每个元素都是指向函数的指针类型。可以定义为:`void (*func_ptr_arr[10])(int);`,其中`void`为函数返回值类型,`(int)`为函数参数列表,`[10]`表示数组中共有10个元素。可以根据实际需要修改返回值类型和参数列表。
相关问题
. 定叉长度为了的整型教組,采用函数调用实现按照从大到小的 顺序排序。在主西数中输出排序前和排序后的数組。按以下四种方法实 现: (1)实参、形参为数组名; (2)实参为数组名,形参为指针麥量; (3) 实参为指针变量,形参为数组名: (4)实参为指针变量,形参为指针变量。
好的,下面是四种方法的代码实现:
(1) 实参、形参为数组名:
```c
#include <stdio.h>
void sort1(int arr[], int len) {
int temp;
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int len = sizeof(arr) / sizeof(arr[0]);
printf("排序前:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
sort1(arr, len);
printf("排序后:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
(2) 实参为数组名,形参为指针变量:
```c
#include <stdio.h>
void sort2(int *arr, int len) {
int temp;
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (*(arr + j) < *(arr + j + 1)) {
temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int len = sizeof(arr) / sizeof(arr[0]);
printf("排序前:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
sort2(arr, len);
printf("排序后:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
(3) 实参为指针变量,形参为数组名:
```c
#include <stdio.h>
void sort3(int arr[], int len) {
int temp;
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int len = sizeof(arr) / sizeof(arr[0]);
int *p = arr;
printf("排序前:");
for (int i = 0; i < len; i++) {
printf("%d ", *(p + i));
}
printf("\n");
sort3(p, len);
printf("排序后:");
for (int i = 0; i < len; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return 0;
}
```
(4) 实参为指针变量,形参为指针变量:
```c
#include <stdio.h>
void sort4(int *arr, int len) {
int temp;
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (*(arr + j) < *(arr + j + 1)) {
temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int len = sizeof(arr) / sizeof(arr[0]);
int *p = arr;
printf("排序前:");
for (int i = 0; i < len; i++) {
printf("%d ", *(p + i));
}
printf("\n");
sort4(p, len);
printf("排序后:");
for (int i = 0; i < len; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return 0;
}
```
以上四种方法都可以实现对整型数组的从大到小排序。其中,第一种方法的形参为数组名,与数组本身有相同的地址,因此可以直接对数组进行排序;第二种方法的形参为指针变量,需要用指针运算符 `*` 对指针进行解引用操作;第三种方法的实参为指针变量,需要用指针运算符 `*` 对指针进行解引用操作;第四种方法的实参和形参都为指针变量,需要用指针运算符 `*` 对指针进行解引用操作。
定义一个结构体类型 student(成员有:一个字符数组 no、一个字 符数组 name,一个整型变量 age,一个字符型变量sex 等,成员自己 可以根据需要添加),在main 西数内定义一个该结构体类型的变量,定义一个指向该变量的指针,给结构体变量各成员赋值并用指针将该变量的各成员值输出
好的,这是一个关于 C 语言的问题。可以回答。
代码如下:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
char no[20];
char name[20];
int age;
char sex;
};
int main() {
struct student stu;
struct student *p = &stu;
strcpy(stu.no, "20210001");
strcpy(stu.name, "张三");
stu.age = 20;
stu.sex = 'M';
printf("学号:%s\n", p->no);
printf("姓名:%s\n", p->name);
printf("年龄:%d\n", p->age);
printf("性别:%c\n", p->sex);
return ;
}
```
输出结果如下:
```
学号:20210001
姓名:张三
年龄:20
性别:M
```
相关推荐
![](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)