【《C和指针》笔记】第一章<快速上手>

news2025/7/9 17:32:44
  1. 注释以/*开始到*/结束或者使用//

  2. .预处理指令:因为它们是由预处理器解释的,预处理器读入代码,根据预处理指令对其进行修改,然后把修改过的源代码递交给编译器。预处理指令(#include、#define)所定义的变量会被换成定义的值。

  3. 函数声明被称为函数原型,他们告诉编译器这些以后将在源文件中定义的函数特征。当这些函数被调用时,编译器就能对它们进行准确性检查。

  4. 这本书里,变量细分为标量数组,所以标量暂时可以理解为区别于数组的变量。结构标量,数组是向量。

  5. 数组参数是以引用总是进行传递的,也就是传址调用,而标量和常量则是按传递的。

  6. gets函数:
    在这里插入图片描述
    在这里插入图片描述
    gets函数从标准输入读取一行文本并把它储存与作为参数传递给它的数组中;
    一行输入由一串字符组成,以一个换行符结尾gets函数丢弃换行符,并在该行的末尾储存一个NUL字节(一个NUL字节是指字节模式全为0,类似于‘\0’这样的字符常量);
    然后,gets函数返回一个非NULL值,表示改行已被成功读取,当gets函数被调用但事实上不存在输入行时,他就返回NULL值,表示它达到了输入的末尾(文件尾)。

  7. 字符串就是以NUL字节结尾的字符。NUL是作为字符终止符,它本身并不被看成是字符串的一部分字符串常量就是源文件中源文件中被双引号括起来的一串字符 。NUL是ASCII字符集中‘\0’字符的名字,它的字节模式全为0,NULL指一个其值为0的指针。

  8. printf函数执行格式化输出
    在这里插入图片描述

  9. &&是‘逻辑与’操作符。要使整个表达式为真,&&操作符旁边的表达式都必须为真。然而如果左边的表达式为假,右边的表达式便不再进行求值,因为不管它是真是假,整个表达式总是假的。

  10. puts函数是gets的输出版本,它把指定的字符串写到标准输出并在末尾添上一个换行符。
    在这里插入图片描述
    在这里插入图片描述

  11. getchar函数从标准输入读取一个字符并返回它的值。如果输入中不再存在任何字符,函数就会返回常量EOF,用于提示文件结尾
    在这里插入图片描述
    在这里插入图片描述

int ch;
ch=getchar();
while(ch!=EOF)
{
	ch=getchar;
}

这里的ch被声明为整型,而我们事实上需要他来读取字符?
因为EOF是一个整型值,它的位数比字符类型要多,把ch声明为整型可以防止从输入读取的字符意外地解释为EOF。但同时,也意味着接受字符的ch必须足够大,足以容纳EOF;

  1. 当数组名作为实参时,传给函数的实际上是一个指向数组起始位置的指针,也就是数组在内存中的地址,正是因为实际传递的是一个指针而不是一份数组的拷贝,才使数组名作为参数时具备了传址调用的语义

  2. putchar函数,他与getchar函数相对应,它接受一个整形参数,并在标准输出中打印该字符。
    在这里插入图片描述
    在这里插入图片描述

  3. strcpy函数与strncpy函数
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

【论文阅读笔记|CASE 2022】EventGraph: Event Extraction as Semantic Graph Parsing

论文题目:EventGraph: Event Extraction as Semantic Graph Parsing 论文来源:CASE2022 论文链接:https://aclanthology.org/2022.case-1.2.pdf 代码链接:GitHub - huiling-y/EventGraph 0 摘要 事件抽取涉及到事件类型检测、…

【Scala】集合

目录 类型 不可变集合 可变集合 数组 不可变 可变数组 不可变数组与可变数组的转换 多维数组 List list运算符 可变 ListBuffer Set 集合 不可变 Set 可变 mutable.Set Map 集合 可变 Map 元组 操作 通用操作 衍生集合操作 计算函数 排序 sorted sortB…

java springboot VUE 健康食谱管理系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE 健康食谱管理系统是一套完善的完整信息管理类型系统,结合springboot框架和VUE完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开 发),系统具有完整的源代码…

PHP快速入门08-JSON与XML处理

文章目录 前言一、使用介绍1.1 JSON处理1.2 XML处理 二、常见用法20例2.1 将数组转换为JSON格式:2.2 将JSON字符串转换回PHP数组:2.3 读取XML文件:2.4 将XML字符串转换成PHP对象:2.5 从URL获取JSON数据:2.6 写入JSON文…

SpringBoot集成Disruptor

Disruptor介绍 1.Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年…

为什么APP也需要SSL证书?

通常我们会想到对网站使用SSL证书,来加密数据传输过程,确保信息不被篡改、泄露。对APP这类应用程序则选择软件签名证书,来进行数字签名和防止代码被恶意篡改。然而APP很容易获取到个人敏感信息,为了防止这些信息在传输过程中被有心…

JUC并发编程之读写锁

1 ReentrantReadWriteLock 当读操作远远高于写操作,这时候使用 读写锁 让 读-读 可以并发,提高性能,类似于数据库中的 select … from … lock in share mode 测试阻塞 提供一个 数据容器类 内部分别使用读锁保护数据的 read() 方法&#…

NAT-HCIA阶段综合实验

拓扑结构: 要求 1、ISP路由器只能配置IP地址,之后不得进行其他配置 2、内部整个网络基于192.168.1.0/24进行地址规划 3、R1、R2之间启动OSPF协议,单区域 4、PC1~PC4自动获取IP地址 5、PC1不能telnetR1,PC1外的其他内网PC可以t…

设计模式-行为型模式之状态模式

4. 状态模式 4.1. 模式动机 在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事…

GPT大模型之后,谷歌、微软、百度们AI争霸的下一战

又来了一个大模型! 4 月 14 日,雷军宣布推出小米的大规模语言模型;4 月 11 日,在阿里云峰会上,阿里云智能首席技术官周靖人正式宣布推出大规模语言模型——通义千问,并宣布要在钉钉、天猫精灵等阿里所有产品…

Ghidra使用之Options页面功能介绍

Apply Processor Defined Lables 在Ghidra中,apply processor defined labels功能可以为汇编代码中的地址和数据自动添加注释,这可以大大提高反汇编代码的可读性。 使用步骤如下: 打开您要反汇编的文件,进入Code Browser窗口。点击Edit菜单,选择Apply Processor Defined Labels…

Mysql不同服务器跨库查询解决方案

项目场景: Mysql在不同服务器实现跨库查询,类似dblink。 解决方案: 在两台不同服务器,实现跨库查询,其实现原理类似一个虚拟映射,需要用到mysql的另一个存储引擎Federated,FEDERATED存储引擎访问在远程数据…

另一个世界的人

休假 赶在假期无效前,休了个长假回了趟老家。不仅是为了逃离工作的繁忙,也为了看望老家的婆婆爷爷。回趟老家对于我们这种社会人来说确实太难了,如果只是周末回去也就休息一天就得往回赶,太累。自己的假期本来就不多,如…

如何对HDFS进行节点内(磁盘间)数据平衡

当HDFS的DataNode节点挂载多个磁盘时,往往会出现两种数据不均衡的情况: 1.不同DataNode节点间数据不均衡; 2.挂载数据盘的磁盘间数据不均衡。 特别是这种情况:当DataNode原来是挂载了几个数据盘,当磁盘占用率很高之…

7.1 参数的点估计

小结: 点估计是一种统计推断方法,它用于通过样本数据估计总体参数的值。在统计学中,总体是指一个包含所有个体的集合,而样本是从总体中选出的一部分个体。总体参数是总体的某种特征,如平均值、标准差、比例等。 点估…

全志V851s、V853内g2d模块sample深究

1. g2d 模块概述 g2d 主要功能: 1)旋转:支持90、180、270旋转; 2)镜像反转:H / V; 3) scale:放缩 4)格式转换:yuv 转 rgb 等,多种格式相互间转换&#xff1b…

python学习——缺失值、重复值处理、排序及替换

文章目录 1 缺失值处理1.1 查看缺失值 df.isnull()1.2 统计缺失值 df.isnull().sum()1.3 删除缺失值 df.drop()1.4 填充缺失值 df.fillna()1.4.1 固定值填充 df.fillna(value)1.4.2 线性插值填充 df.fillna(df.interpolate()) 2 重复值处理2.1 查看重复值 df.duplicated()2.2 筛…

最佳实践:Android应用中的网络请求和数据缓存

最佳实践:Android应用中的网络请求和数据缓存 网络请求在Android应用中的重要性 在现代移动应用中,网络请求扮演着重要的角色,涉及到数据的获取、上传、更新等功能。网络请求在Android应用中具有关键地位,对于提供优秀的用户体验和…

如何使用山海鲸可视化绘制堆叠双轴图?

简介 堆叠双轴图是一种数据可视化图表类型,它结合了堆叠柱状图和双轴图的特点,将两个或更多个数据系列以不同的颜色或图案堆叠在一起,同时使用两个垂直轴来表示不同的数据范围,以显示它们之间的关系和趋势。其中一个轴通常代表数…

一个实例讲解如何使用BP神经网络(附代码)

本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com BP神经网络是一个广泛应用的模型, 本文以一个实例作为主线,面向初学者讲解如何构建和使用一个BP神经网络 帮助没接触进BP神经网络的初学者,快速上手BP神经网络…