数组Array
结构体Struct
学习C语言,基本类型(Primitive Type)看完了就差不多到 数组和结构体来。
作为C语言中最基本最常见的复合类型(Compound Type),两者作为参数传递时所完全不一样的。
数组的名字本来就是指针,所以方法里面修改数组元素能影响传递进来的数组。两者地址也一样。
结构体传进方法时,是复制的一个副本。两者地址不一样。
#include <stdio.h>
void changeArray(int x[])
{
x[0] = 900;
x[1] = 800;
printf("array address in method=%d\n",x);
}
int main(void)
{
int arr[2] ;
arr[0] = 0;
arr[1] = 0;
printf("arr[0] before =%d\n",arr[0]);
printf("arr[1] before=%d\n",arr[1]);
changeArray(arr);
printf("\n------------------------------------");
printf("\n");
printf("arr[0] after=%d\n",arr[0]);
printf("arr[1] after=%d\n",arr[1]);
printf("array address after=%d\n",arr);
return 0;
}
depeng@depeng-ubuntu:~/c$ ./Array
arr[0] before =0
arr[1] before=0
array address in method=-1077467192
------------------------------------
arr[0] after=900
arr[1] after=800
array address after=-1077467192
#include <stdio.h>
struct complex_struct { double x, y; };
void changeStruct(struct complex_struct s){
s.x=900;
s.y=800;
printf("\n");
printf("\n--------<in method>----------------------------");
printf("\n");
printf("s in method=%d\n", s);
printf("&s in method=%d\n", &s);
printf("\n--------</in method>----------------------------");
}
int main(void)
{
struct complex_struct z;
z.x = 0.0;
z.y = 0.0;
printf("\n");
printf("\n----------<before>--------------------------");
printf("\n");
printf("z=%f %f\n", z.x, z.y);
printf("z before=%d\n", z);
printf("&z before=%d\n", &z);
printf("\n------------</before>------------------------");
changeStruct(z);
printf("\n");
printf("\n------------</after>------------------------");
printf("\n");
printf("z=%f %f\n", z.x, z.y);
printf("z after=%d\n", z);
printf("&z after=%d\n", &z);
printf("\n------------</after>------------------------");
printf("\n");
return 0;
}
----------<before>--------------------------
z=0.000000 0.000000
z before=0
&z before=-1076121216
------------</before>------------------------
--------<in method>----------------------------
s in method=0
&s in method=-1076121248
--------</in method>----------------------------
------------</after>------------------------
z=0.000000 0.000000
z after=0
&z after=-1076121216
------------</after>------------------------
- 大小: 1.2 MB
分享到:
相关推荐
C语言全套资料 C语言程序设计 C语言算法 C语言课件 C语言顺序程序设计,C语言数组,C语言循环控制,C语言预处理命令,C语言文件操作指针,C语言选择结构程序设计,C语言结构体与共用体,C语言文件操作,C语言函数
想必很多时候,C语言会使用数组作为参数,在之前我们使用过ctypes的一些数据类型作为C语言参数类型,包括byte、short、int、double之类的,但是在使用数组类型的时候,我们也是有着类似的做法,下面我们
31) C语言之二维数组和多维数组 32) C语言之指向数组的指针 33) C语言之保护数组内容const的使用 34) C语言之指向多维数组的指针 函数 35) C语言之函数的定义和调用 36) C语言之定义带参数的函数 37) C语言之函数之...
如果想通过一个一维数组作为函数的参数,就必须声明函数形式参数,使用以下三种方式与所有三个声明方法之一产生类似的结果,因为每一种方式告诉编译器,一个整数指针将会要被接收。类似的方式,可以使用多维数组形式...
用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统。 (1) 录入每个学生的学号、姓名和各科考试成绩。 (2) 计算每门课程的总分和平均分。 (3) 计算每个学生的总分和平均分。 (4) 按每个...
31) C语言之二维数组和多维数组 32) C语言之指向数组的指针 33) C语言之保护数组内容const的使用 34) C语言之指向多维数组的指针 函数 35) C语言之函数的定义和调用 36) C语言之定义带参数的函数 37) C语言之函数之...
C语言教程-结构体、共用体;数组、指针、参数、数据结构
Java调用C语言动态库(JNA方式):回调函数、结构体数组传参、结构体数组返回-附件资源
支持指针形式的数组访问,支持结构体封装,支持以结构体指针形式作为参数和返回值。支持一级指针。理论上支持多级指针。压缩包里的LuaMe是封装库,LuaSDL2是利用该库封装的SDL1.2的一些函数和结构体(CodeBlocks),...
7.5.2 用指向结构体变量的指针作为函数参数 7.5.3 返回结构体类型值的函数 7.6 共用体类型数据 7.6.1 共用体的特点 7.6.2 共用体变量的应用 7.7 枚举类型数据 7.8 用typedef定义类型 习题七 第8章 ...
9.3.3用结构体变量和结构体变量的指针作函数参数 9.4用指针处理链表 9.4.1什么是链表 9.4.2建立简单的静态链表 9.4.3建立动态链表 9.4.4输出链表 9.5共用体类型 9.5.1什么是共用体类型 9.5.2引用...
《C语言程序设计》复习纲要 2 1、判断能否被整除-3 3 2、用公式求和、求乘积-11 6 3、字符串字符数组-12 16 4、一维数组-3 27 5、二维数组-7 29 ...求[1,1000]之间既能被3整除又能被5整除的整数之和,将
1、结构体指针变量的定义以及通过结构体指针变量调用成员变量的方法; 2、结构体对象做形式参数与结构体指针变量做参数的作用与区别; 3、讲解和演示使用结构体数组进行应用程序开发的访法;
相关知识点、技术点:文件、数组、结构体、指针;动态内存申请;程序工程组织与多文件程序开发调试; 1)采用如下结构体描述实验2中生成数据记录文件的一些限制参数; 2)在实验2的基础上增加配置文件读取功能,创建...
10. C语言中实现数组的动态增长 44 11. C语言中的位运算 46 12. 浮点数的存储格式: 50 13. 位域 58 14. C语言函数二维数组传递方法 64 15. C语言复杂表达式的执行步骤 66 16. C语言字符串函数大全 68 17. C语言宏...
9.3.3 用结构体变量和结构体变量的指针作函数参数 9.4 用指针处理链表 9.4.1 什么是链表 9.4.2 建立简单的静态链表 9.4.3 建立动态链表 9.4.4 输出链表 9.5 共用体类型 9.5.1 什么是共用体类型 9.5.2 引用共用体变量...
7.2 结构体数组的定义和引用 129 7.3 结构体指针的定义和引用 135 7.3.1 指向结构体类型变量的使用 135 7.3.2 指向结构体类型数组的指针的 使用 136 7.4 链表的建立、插入和删除 138 7.4.1 单链表 139 7.4.2 单链表...
十一、函数参数的传递和值返回 十二、变量的作用域和存储类型 十三、函数递归 十四、预处理过程 十五、指针概念 十六、数组和指针 十七、指针函数和函数指针 十八、结构体 十九、联合和枚举 二十、堆和链表 二十一、...
10. C语言中实现数组的动态增长 44 11. C语言中的位运算 46 12. 浮点数的存储格式: 50 13. 位域 58 14. C语言函数二维数组传递方法 64 15. C语言复杂表达式的执行步骤 66 16. C语言字符串函数大全 68 17. C语言宏...
7.2 结构体数组的定义和引用 129 7.3 结构体指针的定义和引用 135 7.3.1 指向结构体类型变量的使用 135 7.3.2 指向结构体类型数组的指针的 使用 136 7.4 链表的建立、插入和删除 138 7.4.1 单链表 139 7.4.2 单链表...