c语言指针的简单例题
时间: 2023-07-13 12:08:52 浏览: 66
好的,以下是一个简单的 C 语言指针例题:
```c
#include <stdio.h>
int main() {
int a = 5;
int *ptr = &a;
printf("a 的值为 %d\n", a);
printf("a 的地址为 %p\n", &a);
printf("指针 ptr 的值为 %p\n", ptr);
printf("指针 ptr 所指向的值为 %d\n", *ptr);
return 0;
}
```
输出结果为:
```
a 的值为 5
a 的地址为 0x7fff5fbff64c
指针 ptr 的值为 0x7fff5fbff64c
指针 ptr 所指向的值为 5
```
这个例子中,我们定义了一个整型变量 `a`,并将其赋值为 5。然后,我们定义了一个指向整型变量的指针 `ptr`,并将其初始化为 `a` 的地址。接下来,我们使用 `printf()` 函数打印出变量 `a` 的值、地址,以及指针 `ptr` 的值和所指向的值。注意到我们使用了解引用运算符 `*` 来获取指针所指向的值。
相关问题
c语言指针和结构体例题
当我们使用C语言时,指针和结构体是两个非常重要的概念。下面是一个指针和结构体的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Person {
char name[50];
int age;
};
int main()
{
struct Person *personPtr;
struct Person person;
strcpy(person.name, "Tom");
person.age = 20;
personPtr = &person;
printf("Name: %s\n", personPtr->name);
printf("Age: %d\n", personPtr->age);
return 0;
}
```
上述代码中,我们定义了一个名为Person的结构体,它包括了两个成员:name和age。在main函数中,我们首先声明了一个指向Person结构体的指针personPtr和一个Person类型的变量person。然后,我们使用strcpy函数将字符串“Tom”复制到person结构体的name成员中,并将20赋值给age成员。接着,我们将personPtr指向person结构体的地址。最后,我们通过personPtr指针访问了person结构体的成员,并将它们输出到屏幕上。
这是一个基本的使用指针和结构体的例子,我们可以通过这个例子了解C语言中指针和结构体的基本用法。
c语言指针数组编程经典例题
C语言指针数组是C语言中常用的数据结构之一,可以用于存储一组指针的地址。下面是一个经典的C语言指针数组编程例题:
假设有一个学生成绩的数组,其中包含了5个学生的成绩。要求编写一个程序,输出成绩最高的学生的姓名和成绩。
首先,我们需要定义一个包含指针的数组,用来存储学生成绩的地址。假设学生成绩的数据类型为int,可以使用以下代码定义指针数组:
int *scorePtr[5];
接下来,我们需要输入学生的成绩,并将其存储到指针数组中。可以使用以下代码实现:
int scores[5]; // 存储学生成绩的数组
for (int i = 0; i < 5; i++) {
printf("请输入学生%d的成绩:", i+1);
scanf("%d", &scores[i]);
scorePtr[i] = &scores[i];
}
在上述代码中,我们通过scanf函数输入学生的成绩,并将成绩对应的地址存储到指针数组scorePtr中。
最后,我们需要找出成绩最高的学生,并输出其姓名和成绩。可以使用以下代码实现:
int maxScore = *scorePtr[0]; // 假设第一个学生成绩最高
int maxIndex = 0;
for (int i = 1; i < 5; i++) {
if (*scorePtr[i] > maxScore) {
maxScore = *scorePtr[i];
maxIndex = i;
}
}
printf("成绩最高的学生是学生%d,成绩为:%d\n", maxIndex+1, maxScore);
在上述代码中,我们通过遍历指针数组scorePtr,比较每个学生的成绩,找出成绩最高的学生,并将其索引保存到maxIndex中。最后,我们通过maxIndex找到成绩最高的学生,并输出其姓名和成绩。
通过以上步骤,我们可以解决这个经典的C语言指针数组编程例题。