C++研发笔记11——C语言程序设计初阶学习笔记9

        本篇笔记我们继续第二部分《初识C语言》的学习,上一篇学习笔记当中我们详细学习了常见关键字以及#define 定义常量和宏的相关知识,接下来第二部分的内容的内容还包括:指针以及结构体。

第二部分  初识C语言

十三、指针

// 学习指针之前,必须要理解好内存。
// 内存是计算机上的一种储存空间。(8G / 16G)
// 程序运行的时候会载入内存,程序中如果有数据需要储存,也会申请内存空间
// 内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的 。
// 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
// 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址(指针)。// 如果访问一个内存单元,那内存单元的地址(指针)如何产生呢?
// 以32位机器为例子:32根地址线,地址线如果通电(通电不通电分别代表0和1),这样32位机器可以产生2^32个二进制序列
// 也就是作为2^32个地址,就可以管理2^32个内存单元,也就是2^32个字节的内存空间。(即4GB)// 因此每个变量都有地址,我们可以通过代码取出地址。#include<stdio.h>int main()
{int num = 10; // 向内存申请了4个字节&num; // 取出整型变量 num 的地址,& 是取地址操作符printf("变量num所占空间大小为:%zd\n", sizeof(num));printf("变量num的地址为:%p\n", &num); // 打印 num 地址 ,%p —— 以地址的形式打印// 打印结果为16进制表示,打印的是变量所占内存对应的第一个字节的地址(较小的地址)// 我们可以将地址储存起来,这样就要定义指针变量int* p = &num; // 定义了一个整型指针变量// int 代表指向的是 int 类型的变量,* 表示 p 是一个指针printf("变量num的地址为:%p\n", p);*p = 20; // 解引用操作,作用就是通过 p 中的地址,找到 num ,*p 就是 numprintf("num = %d\n", num);// 上面是以整型指针变量为例子,下面我们也可以推广到其他类型char ch = 'a';char* pc = &ch;*pc = 'b';printf("ch = %c\n", ch);// 本质上指针就是地址,但是平常我们说的指针往往指的是指针变量// 我们也可以通过 sizeof 计算指针变量的大小printf("%zd\n", sizeof(int*));printf("%zd\n", sizeof(short*));printf("%zd\n", sizeof(long*));printf("%zd\n", sizeof(double*));printf("%zd\n", sizeof(float*));printf("%zd\n", sizeof(char*));// 32位的机器上,指针变量存放的是32bit的地址,因此32位机器上指针变量是4个字节// 64位的机器上,指针变量存放的是64bit的地址,因此64位机器上指针变量是8个字节return 0;
}

十四、结构体

/*
C语言的内置类型:char short long int float double ……
C语言除此之外还具有自定义类型:数组、结构体、枚举、联合体
结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。
比如在描述一些复杂对象的时候:描述人 —— 姓名 性别 身高 体重 年龄 ……描述书 —— 书名 作者 出版社 定价 ……
描述这些复杂对象就只能用结构体(struct)描述了
*/// 比如描述学生:姓名 + 性别 +年龄#include<stdio.h>struct Student
{char name[20];char sex[5];int age;
};void Print(struct Student * a)
{printf("name = %s\n", (*a).name);printf("sex = %s\n", (*a).sex);printf("age = %d\n", (*a).age);// 还有另外一种表示方法printf("%s %s %d\n", a->name, a->sex, a->age);// -> 这个操作符是一种语法规定,也可以达到同样的效果// 结构体的指针 -> 成员名
}int main()
{// 对结构体进行初始化struct Student s = { "刘博实","男",18 };// 打印结构体信息, . 为结构体成员访问操作符printf("name = %s\n", s.name);printf("sex = %s\n", s.sex);printf("age = %d\n", s.age);struct Student s1 = { "张三","女",20 };Print(&s1);return 0;
}

        截止到这里,我们完成了第二部分《初识C语言》全部的学习内容,在这一部分我们对C语言需要掌握的全部知识都会有了一个初步的认知和了解。接下来的一篇笔记会更新习题内容,来回顾这一部分的知识。进而就开始第三部分《分支语句和循环语句》的学习了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache HTTP Sever 的初级操作指南

Apache 初级操作指南 摘要&#xff1a; 本文详细介绍了 Apache HTTP Server 的初级操作方法&#xff0c;包括安装与配置、启动与停止服务、虚拟主机设置以及访问日志与错误日志的查看与分析等内容。通过本文的学习&#xff0c;初学者可以快速掌握 Apache 的基本操作&#xff0…

[数组排序] LCR 164. 破解闯关密码

文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接 LCR 164. 破解闯关密码 - 力扣&#xff08;LeetCode&#xff09; 2. 题目大意 描述&#xff1a;给定一个非负整数数组 nums。 要求&#xff1a;将数组中的数字拼接起来排成一个数&#xff0c;打印…

【深度学习】时间序列预测、分类、异常检测、概率预测项目实战案例

说明&#xff1a;本专栏内容来自于个人学习笔记、以及相关项目的实践与总结。写作目的是为了让读者体会深度学习的独特魅力与无限潜力&#xff0c;以及在各行各业之中的应用与实践。因作者时间精力有限&#xff0c;难免有疏漏之处&#xff0c;期待与读者共同进步。 前言 在当今…

C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(1)

在使用模块之前&#xff0c;头文件用于提供代码重用的接口。头文件确实有许多问题&#xff0c;比如避免同一头文件的多重包含以及确保头文件的包含顺序正确。还有&#xff0c;简单的#include&#xff0c;例如&#xff0c;<iostream>就添加了几千行代码&#xff0c;编译器…

第十五章 Vue工程化开发及Vue CLI脚手架

目录 一、引言 二、Vue CLI 基本介绍 三、安装Vue CLI 3.1. 安装npm和yarn 3.2. 安装Vue CLI 3.3. 查看 Vue 版本 四、创建启动工程 4.1. 创建项目架子 4.2. 启动工程 五、脚手架目录文件介绍 六、核心文件讲解 6.1. index.html 6.2. main.js 6.3. App.vue 一、…

EtherCAT通信系统中的时钟同步机制

EtherCAT&#xff08;Ethernet for Control Automation Technology&#xff09;通信系统中的时钟同步机制是其核心特性之一&#xff0c;它确保了所有连接的设备能够精确、同步地执行操作。以下是对EtherCAT通信系统中时钟同步机制的详细解释和介绍&#xff1a; 一、分布式时钟…

Linux 进程终止 进程等待

目录 进程终止 退出码 错误码 代码异常终止(信号详解) exit _exit 进程等待 概念 等待的原因 wait 函数原型 参数 返回值 监控脚本 waitpid 概念 函数原型 参数 返回值 WIFEXITED(status) WEXITSTATUS(status) 问题 为什么不用全局变量获得子进程的退出信…

[MySQL]DQL语句(一)

查询语句是数据库操作中最为重要的一系列语法。查询关键字有 select、where、group、having、order by、imit。其中imit是MySQL的方言&#xff0c;只在MySQL适用。 数据库查询又分单表查询和多表查询&#xff0c;这里讲一下单表查询。 基础查询 # 查询指定列 SELECT * FROM …

如何理解ref,toRef,和toRefs

1. ref ref 是 Vue 3 提供的一个用于创建响应式数据的 API。它可以用来创建简单的响应式变量&#xff0c;例如数字、字符串、布尔值或对象等。通过使用ref&#xff0c;当数据发生变化时&#xff0c;相关的组件视图会自动更新。 用法 创建响应式数据&#xff1a; import { ref …

Java 批量导出Word模板生成ZIP文件到浏览器默认下载位置

是不是你们要找的&#xff01;是不是你们要找的&#xff01;是不是你们要找的&#xff01; 先看效果&#xff1a; 1.word模板格式 2.模板位置 3.需要的依赖 <!--POI-TL实现数据导出到word模板--><dependency><groupId>cn.hutool</groupId><artifact…

使用 Nuxt 快速初始化 shadcn-vue 项目

更多 shadcn-vue 中文文档在 Torna Nuxt 安装并配置Nuxt 1. 创建项目 首先&#xff0c;使用 create-nuxt-app 创建一个新的 Nuxt 项目。 如果你选择使用 JavaScript 模板&#xff0c;那么必须存在 jsconfig.json 文件&#xff0c;这样命令行工具&#xff08;CLI&#xff09;…

Flarum:简洁而强大的开源论坛软件

Flarum简介 Flarum是一款开源论坛软件&#xff0c;以其简洁、快速和易用性而闻名。它继承了esoTalk和FluxBB的优良传统&#xff0c;旨在提供一个不复杂、不臃肿的论坛体验。Flarum的核心优势在于&#xff1a; 快速、简单&#xff1a; Flarum使用PHP构建&#xff0c;易于部署&…

CPU用户时间百分比

在计算机系统中&#xff0c;"CPU用户时间百分比&#xff08;CPU User Time&#xff09;"是一个性能监控指标&#xff0c;它描述了CPU在用户模式下执行的累积时间与总的CPU时间的比例。这个指标可以帮助我们了解系统在执行用户态程序时的负载情况。下面是一些关于CPU用…

vue系列==Vuex状态管理器

1、Vuex状态管理器 1、创建一个Vuex的store对象来统一管理多个组件之间共享的状态数据。在创建store对象时&#xff0c;可以配置state、getters、mutations和actions这4个对象&#xff0c;组件之间共享的状态数据在state对象中指定&#xff0c;而基于状态数据的计算属性可以在g…

ubuntu20.04安装ros与rosdep

目录 前置配置 配置apt清华源 配置ros软件源 添加ros安装源&#xff08;中科大软件源&#xff09; 设置秘钥 更新源 ros安装 安装ros 初始化 rosdep 更新 rosdep 设置环境变量 安装 rosinstall 安装验证 启动海龟仿真器 操控海龟仿真器 rosdep安装更新 安装 使用…

C#读取.ini配置文件

INI文件&#xff08;Initialization File&#xff09;是一种简单的文本文件格式&#xff0c;用于存储程序的配置信息。在Visual Studio中&#xff0c;INI文件通常用于存储应用程序或项目的设置和配置数据。这些设置可能包括数据库连接字符串、应用程序参数、用户偏好等。 INI文…

mobile频段要查找、设置并获取相关参数,该怎么破?

今天我们一起来学习查找和设置mobile频段&#xff0c;并获取相关参数。 一、mobile概述 1.1 简介 “4G mobile”指的是第四代移动通信技术&#xff0c;常用于描述通过4G网络进行的高速无线数据传输和通信。4G网络最显著的特征是其高速数据传输能力。理论上&#xff0c;4G可以…

「C/C++」C++11 之<thread>多线程编程

✨博客主页何曾参静谧的博客📌文章专栏「C/C++」C/C++程序设计📚全部专栏「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid函数说明目…

CSS元素类型(二)

CSS元素类型 重点 CSS元素类型基本的3种类型&#xff1a;1 块【div]1 可以设置宽度/高度2 如果你不设置宽度的话 宽度父元素3 独占一行【父元素的一行】4 margin【外边框】 auto[自动 将左右二边的空白区域平均分配给元素两端]父元素的居中效果空白区域 父元素宽度 - 本身元…

InsCode线上IDE推荐及使用指南

小编在使用inscode后非常震撼&#xff0c;惊叹于他的线上IDE功能和各类其他功能。 割绳子小游戏,这是小编在inscode上做的游戏部署的网站&#xff0c;大家可以去游玩&#xff0c;有什么值得改进的请大家多多指点。 接下来小编分两期为大家带来inscode线上及线下IDE推荐和使用…