char *name 占8个字节指向常量区的名字,自己并不存在,是一个地址,是一个指针. 4. 数组作为函数参数的时候,其实传递给函数的是数组的首地址. 声明:printMaxValueOfArray(int a[100]); 系统默认:printMaxValueOfArray(int *a); 也就是说不管定义中a[200]还是a[100],系统默认的都是数组a的首地址即a. 注...
除了单个结构体指针作为参数外,还可以将结构体指针数组作为参数传递给函数。 例如,我们定义一个包含多个学生信息的结构体数组: ``` struct Student students[3] = { {"Tom", 18, 90.5}, {"Jerry", 19, 88.0}, {"Bob", 20, 92.5} }; ``` 这里定义了一个包含三个学生信息的结构体数组,每个学生有姓名...
// 设置到 Student 数组元素的 age 成员中 scanf("%d", &(array[i].age)); } 1. 2. 3. 4. 5. 6. 7. 8. 结构体数组作为参数 : 使用 结构体数组 作为参数 , 可以进行间接赋值 , 修改该 结构体数组 的元素 , 可以当做返回值使用 ; 此时结构体 数组 会退化为 结构体指针 ; /...
* @param array 数组作为函数参数退化为指针 * @param count 数组中的元素个数 */voidprintf_struct_array(Student*array,int count){// 循环控制变量int i=0;// 验证数组合法性if(array==NULL){return;}// 打印结构体数组中的 结构体 age 字段for(i=0;i<count;i++){printf("Student age = %d\n"...
* @brief printf_student 结构体变量 作为参数 * @param s */voidprintf_student(Student s){printf("printf_student : name = %s, age = %d, id = %d\n",s.name,s.age,s.id);} 二、结构体指针作为函数参数 结构体指针变量作为参数 , 可以 通过 指针 间接赋值 , ...
结构体指针作为函数参数: 结构体变量名代表的是整个集合本身,作为函数参数时传递的整个集合,也就是所有成员,而不是像数组一样被编译器转换成一个指针。如果结构体成员较多,尤其是成员为数组时,传送的时间和空间开销会很大,影响程序的运行效率。所以最好的办法就是使用结构体指针,这时由实参传向形参的只是一个地址,...
指针作为参数和数组名作参数类似,传递的也是结构体数组的首地址,但是此时不是共享一个数组,而是共享一个变量的地址,也就是实参指针和形参指针共同指向同一个变量,共享同一个变量地址。 示例demo 下面的demo中: test函数以结构体数组名为形参; test1函数以结构体数组的首地址和数组大小作为形参; ...
/*** @brief printf_struct_array 打印结构体数组* @param array 数组作为函数参数退化为指针* @param count 数组中的元素个数*/void printf_struct_array(Student *array, int count){// 循环控制变量int i = 0;// 验证数组合法性if(array == NULL){return;}// 打印结构体数组中的 结构体 age 字段...
结构体指针作为函数参数:结构体变量名代表的是整个集合本⾝,作为函数参数时传递的整个集合,也就是所有成员,⽽不是像数组⼀样被编译器转换成⼀个指针。如果结构体成员较多,尤其是成员为数组时,传送的时间和空间开销会很⼤,影响程序的运⾏效率。所以最好的办法就是使⽤结构体指针,这时由实参传向...
五、函数传值vs传引用 六、指针和数组 本章总结 七、数组作为函数参数 本章总结 八、指针和字符数组(上) 本章总结 本章总结 十七、函数指针的使用案例(回调函数) 在b站上看见个有关C语言指针的教程,个人觉得讲得非常滴好,建议在学习指针的小伙伴可以先看遍视频,再来看笔记。