c语言指针实验报告总结,c语言指针实验报告

41528d3028836879cd698677c3999917.gifc语言指针实验报告

C语言实习报告 题目:指针及其应用 系别: 专业: 姓名: 学号: 日期: 一 实验名称:指针及其应用 二 实验目的: (1) 掌握变量的指针及其基本用法。 (2) 掌握一维数组的指针及其基本用法。 (3) 掌握指针变量作为函数的参数时,参数的传递过程及其用法。 三 实验内容: (1) 运行以下程序,并从中了解变量的指针和指针变量的概念。 (2) 运行以下程序,观察 如定义一个指向int型变量的指针—— int *p; 则我们可以继续写如下代码—— int a = 4; p = printf(“%d“, *p); 在这里,我们定义了一个变量a,我们把它理解为内存空间连续的4个字节(int型占用4字节),则这4个字节的空间保存着一个数4。 ptr=str; ptr被置为数组str的第一个元素的地址,因为数组名就是该数组的首地址,也是数组第一个元素的地址。此时可以认为指针ptr就是数组str(反之不成立),这样原来对数组的处理都可以用指针来实现。如对数组元素的访问,既可以用下标变量访问,也可以用指针访问。 2.指向数组元素的指针 若有如下定义: int a[10], *pa; pa=a; 则p= int *p; p=a; p是指向整型变量的指针;p=a使p指向整型二维数组a的首地址。 *(*(p+1)+2)表示取a[1][2]的内容;*p表示取a[0][1]的内容,因为p是指向整型变量的指针;p++表示p的内容加1,即p中存放的地址增加一个整型量的字节数2,从而使p指向下一个整型量a[0][1]。 2 指向由j个整数组成的一维数组的指针变量 当指针变量p不是指向整型变量,而是指向一个包含j个元素的一维数组。如果p=a[0],则p++不是指向a[0][1],而是指向a[1]。这时p的增值以一维数组的长度为单位。 5.指针与字符数组 C语言中许多字符串操作都是由指向字符数组的指针及指针的运算来实现的。因为对于字符串来说,一般都是严格的顺序存取方式,使用指针可以打破这种存取方式,更为灵活地处理字符串。 另外由于字符串以′\0′作为结束符,而′\0′的ASCII码是0,它正好是C语言的逻辑假值,所以可以直接用它作为判断字符串结束的条件,而不需要用字符串的长度来判断。C语言中类似的字符串处理函数都是用指针来完成,使程序运行速度更快、效率更高,而且更易于理解。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一份实验报告,主要涉及指针和结构体。 ## 实验名称:指针和结构体 ## 实验目的 - 理解指针和结构体的概念 - 学会使用指针和结构体进行编程 - 掌握指针和结构体的常见用法 ## 实验内容 ### 1. 指针 指针是一种特殊的变量,它存储了一个地址,该地址指向内存中的另一个变量。指针可以用于传递变量的地址,从而实现函数间的参数传递和数据共享。 指针的声明方式为: ```c type *pointer_name; ``` 其中,`type`表示指针所指向的变量类型,`pointer_name`表示指针的名称。 指针的初始化方式为: ```c type var_name; type *pointer_name = &var_name; ``` 其中,`&`表示取地址符,`var_name`表示要指向的变量名称。 指针的使用方式为: ```c type var_name; type *pointer_name = &var_name; *pointer_name = value; ``` 其中,`*`表示解引用符,`value`表示要赋给变量的值。 ### 2. 结构体 结构体是一种用户自定义的数据类型,可以包含多个不同类型的成员变量。结构体的声明方式为: ```c struct struct_name { type member1; type member2; ... }; ``` 其中,`struct_name`表示结构体的名称,`member1`和`member2`表示结构体的成员变量,可以是任意类型。 结构体的初始化方式为: ```c struct struct_name var_name = {value1, value2, ...}; ``` 其中,`value1`和`value2`表示结构体的成员变量的值。 结构体的使用方式为: ```c struct struct_name var_name = {value1, value2, ...}; var_name.member1 = new_value1; var_name.member2 = new_value2; ``` 其中,`new_value1`和`new_value2`表示要赋给成员变量的新值。 ## 实验结果 本次实验我们使用指针和结构体编写了一个程序,实现了以下功能: 1. 定义了一个名为`student`的结构体,包含学生的姓名、年龄和成绩三个成员变量。 2. 使用指针动态分配了一个`student`结构体对象,并对其进行初始化。 3. 使用指针访问结构体成员变量,并输出结果。 4. 释放动态分配的内存。 程序代码如下: ```c #include <stdio.h> #include <stdlib.h> struct student { char name[20]; int age; float score; }; int main() { struct student *p = (struct student *)malloc(sizeof(struct student)); if (p == NULL) { printf("Memory allocation failed!\n"); return -1; } strcpy(p->name, "Jack"); p->age = 18; p->score = 90; printf("Name: %s\n", p->name); printf("Age: %d\n", p->age); printf("Score: %.2f\n", p->score); free(p); return 0; } ``` ## 实验结论 本次实验我们深入学习了指针和结构体的概念,并掌握了指针和结构体的常见用法。通过实现一个简单的程序,我们进一步加深了对指针和结构体的理解,为以后的编程工作打下了坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值