"C语言程序设计教程:指针、数组、函数及内存分配详解"

版权申诉
0 下载量 161 浏览量 更新于2024-03-06 收藏 915KB PPT 举报
本教程课件是关于C语言程序设计的教程,共包括19页内容。从指针和数组间的关系、数组的定义和元素访问、函数的定义、二维数组的元素访问、输出函数printf和puts、内存分配函数malloc、变量的作用域、指针的概念、指针与多维数组、全局变量、函数的概念、函数间传递指针与传递值、访问二维数组、多重循环控制、转义字符、函数间传递指针、传地址以及循环等多个方面介绍了C语言程序设计的知识点。通过学习本教程,学员可以对C语言程序设计有一个全面的了解,包括基本的语法知识、指针和数组的应用、函数的定义和调用等内容。同时,本教程还包括了一些习题,用以检验学员对所学知识的掌握情况,帮助学员巩固所学的知识。 课件中的内容包括指针和数组的关系,数组的定义和元素的访问,函数的定义,二维数组的元素访问,输出函数printf和puts,内存分配函数malloc,变量的作用域,指针的概念,指针和多维数组之间的关系,全局变量,函数的概念,函数间传递指针和传递值,访问二维数组和多重循环控制,转义字符,函数间传递指针等内容。这些内容贯穿了C语言程序设计的方方面面,从基本的数据类型到更加复杂的数据结构都有介绍和讲解。 本教程的目的是帮助学员系统地了解C语言程序设计的相关知识,掌握其基本语法和重要概念,以及函数的应用、指针和数组的使用等内容。通过学习本教程,学员可以更好地应用C语言进行程序设计,提高编码水平,同时也为后续的学习和工作打下坚实的基础。 总的来说,本教程是一份全面介绍C语言程序设计的教程,内容丰富、知识点覆盖广泛。通过本教程的学习,学员可以系统地了解C语言程序设计的相关知识,掌握其基本语法和重要概念,提高编码水平,为后续的学习和工作打下坚实的基础。该教程还包括了一些习题,可以帮助学员巩固所学的知识,检验学习效果。希望学员能够认真学习本教程,掌握C语言程序设计所需的知识和技能,为未来的学习和工作打下坚实的基础。

#include "prepare_ogm.hpp" namespace senior { namespace guardian { namespace prepare { std::string PrepareOgm::Name() { return "Prepare Ogm Element"; } void PrepareOgm::Initiate() {} void PrepareOgm::Process(data::DataFrame& his, data::DataFrame& cur) { if (cur.source_ogm_points_.is_invalid()) return; if (cur.source_visual_ogm_points_.is_valid()) { cur.source_ogm_points_.insert(cur.source_ogm_points_.end(), cur.source_visual_ogm_points_.begin(), cur.source_visual_ogm_points_.end()); } if (cur.source_higher_ogm_points_.is_valid()) { cur.source_ogm_points_.insert(cur.source_ogm_points_.end(), cur.source_higher_ogm_points_.begin(), cur.source_higher_ogm_points_.end()); } auto& predict_path = cur.monitor_data_.mutable_predict_path(); predict_path.GenerateBoundary(cur); cur.AABox2d_ = predict_path.vehicle_AABox2d_; // if (!his.monitor_data_.is_need_to_take_over()) { // LOG(INFO)<<"1"; cur.AABox2d_.SetWidth(cur.AABox2d_.width() + 1.0); cur.AABox2d_.SetLength(cur.AABox2d_.length() + 1.0); // } std::vector<math::Vec2d> corner_points_; cur.AABox2d_.GetAllCorners(&corner_points_); auto& polygon2d = predict_path.tractor_polygon2d_; math::Vec2d temp; VoxelGrid filter_; common::Time now = common::Time::Now(); for (auto& point : cur.source_ogm_points_) { temp.set_x(point.x()); temp.set_y(-point.y()); if (cur.AABox2d_.IsPointIn(temp)) { cur.AABB_ogm_points_.emplace_back(point); } } cur.guardian_diagnose_["Prepare_PrepareOgm_AABox_filter"] = std::to_string((common::Time::Now() - now).ToSecond() * 1000); now = common::Time::Now(); filter_.VoxelGrid_ApplyFilter( cur.AABB_ogm_points_, cur.ogm_points_, corner_points_, 0.1, 0.1, 0); cur.guardian_diagnose_["Prepare_PrepareOgm_VoxelGrid_ApplyFilter"] = std::to_string((common::Time::Now() - now).ToSecond() * 1000); cur.ogm_points_.set_stamp(cur.source_ogm_points_.stamp()); cur.ogm_points_.set_time(cur.source_ogm_points_.time()); cur.ogm_points_.set_delay_time(cur.source_ogm_points_.delay_time()); cur.ogm_points_.set_valid(); } } // namespace prepare } // namespace guardian } // namespace senior 改变为C语言程序

2023-06-13 上传