C程序设计(第四版)学习笔记

2023-11-07

1. for语句

for(fahr = 0; fahr <= 300; fahr = fahr + 20)

第一部分是初始化部分,仅在进入循环前执行一次,第二部分是条件部分,如果结果值为真,则执行循环体,此后将执行第三部分,增加步长。

2. 我们通常把函数定义中圆括号内列表中出现的变量称为形式参数,而把函数调用中与形式参数对应的值称为实际参数。

3. 一般来说,函数返回值为0表示正常终止,返回值为非0表示出现异常情况或出错结束条件

4. 标准库函数 strlen(s)可以返回字符串参数 s 的长度,但长度不包括末尾的 '\0' 。

5. 不同枚举中的名字必须互不相同,同一枚举中不同的名字可以具有相同的值。

6. 关系运算符的优先级比算数运算符低,因此,表达式i < lim - 1等价于 i < (lim - 1)。

7. 按位与运算符 & 经常用于屏蔽某些二进制位,按位或运算符 | 常用于将某些二进制位置为1,按位异或运算符 ^ 当两个操作数的对应位不相同时将该位设置为1,否则,将该位设置为0。

8. 在对 unsigned 类型的无符号值进行右移位时,左边突出的部分将用0填补;当对 signed 类型的带符号值进行右移时,某些机器将对左边突出的部分用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)。

9. x *= y + 1 的含义是:x = x * (y + 1)  而不是 x = x * y + 1

10.                                                                 运算符的优先级与结合性

                                     运算符                                                                                        结合性

         ()  []  ->  .                                                                                                             从左至右

         !  ~  ++ --  +  -  *  (type)  sizeof                                                                           从右至左

         *  /  %                                                                                                                  从左至右

         +  -                                                                                                                      从左至右

         <<  >>                                                                                                                 从左至右

        <  <=  >  >=                                                                                                          从左至右

        ==  !=                                                                                                                   从左至右

        &                                                                                                                          从左至右

        ^                                                                                                                           从左至右

        |                                                                                                                            从左至右

       &&                                                                                                                         从左至右

       ||                                                                                                                            从左至右

       ?:                                                                                                                           从左至右

       =  +=  -=  *=  /=  %=  &=  ^=  |=  <<=  >>=                                                            从右至左

       ,                                                                                                                          从右至左

注:一元运算符+、-、&与*比相应的二元运算符+、-、&与*的优先级高

11. 指定数据宽度和小数位数,用%m.nf。 指定了输出的数据占m列, 其中包括n位小数。对其后以为采取四舍五入方法处理,即向上或者向下取近似值。如果把小数部分指定为0,则不仅不输出小数,而且小数点也不输出。

12. 在 while 与 do - while语句中,continue 语句的执行意味着立即执行测试部分;在for循环中,则意味着使控制转移到递增循环变量部分。

13. break语句只能从最内层循环退出到上一级的循环。

14. 如果在被调用的函数(不包括主函数)中定义数组,其长度可以是变量或非常量表达式。如:

    void func(int n)

    {

        int a[2 * n];                //合法,n的值从实参传来

        static int b[2 * n]        //不合法,b数组指定为 static存储方式

    }

15. 二维数组 a[m][n] 表示 m 行 n 列数组。c语言中,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第1行的元素,接着再存放第2行的元素。多维数组元素在内存中的排列顺序为:第1维的下标变化最慢,最右边的下标变化最快。

int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};

16. c系统在用字符数组存储字符串常量时会自动加一个'0'作为结束符。例如“C program”共有9个字符。字符串是存放在以为数组中的,在数组中它占10个字节,最后一个字节‘\0’是由系统自动加上的。

17. 字符串处理函数

strcat(str1,str2)字符串连接函数

strcpy(str1,str2)字符串复制函数

strncpy(str1,str2,n)将str2中最前面n个字符复制打到str1中,取代str1中原油的最前面n个字符。但复制的字符个数n不应多于str1中原有的字符(不包括‘\0’)。

strcmp(str1,str2)字符串比较函数。(1)如果字符串1=字符串2,则函数值为0。(2)如果字符串1>字符串2,则函数值为一个正整数。(3)如果字符串1<字符串2,则函数值为一个负整数。

strlen(字符数组)测字符串长度的函数

strlwr(字符串)转换为小写的函数

strupr(字符串)转换为大写的函数

18. 指针

a. p++;

    *p;

    p++使p指向下一个元素a[1]。然后若再执行*p,则得到下一个元素a[1]的值。

b. *p++;

    由于++和*同优先级,结合方向为自右向左,因此它等价于*(p++)。先引用p的值,实现*p的运算,然后再使p自增1。

c. *(p++)与*(++p)作用是否相同?

    不相同。前者是先取*p值,然后使p加1。后者是先使p加1,再取*p。

d. ++(*p)

    表示p所指向的元素值加1。

e. 如果p当前指向a数组中第i个元素a[i],则:

    *(p--)相当于a[i--],先对p进行“*”运算(求p所指向的元素的值),再使p自减。

    *(++p)相当于a[++i],先使p自加,再进行“*”运算。

    *(--p)相当于a[--i],先使p自减,再进行“*”运算。

19. 一般将结构体名、共用体名和枚举名的第一个字母大写表示,以表示和系统提供的类型名相区别。

20.                                                                     使用文件方式

       文件使用方式                                                                 含义                                              如果指定的文件不存在

       “r”(只读)                                  为了输入数据,打开一个已存在的文本文件                                出错

       “w”(只写)                                为了输出数据,打开一个文本文件                                               建立新文件

       “a”(追加)                                 向文本文件尾添加数据                                                                 出错

       “rb”(只读)                                为了输入数据,打开一个二进制文件                                           出错

       “wb”(只写)                               为了输出数据,打开一个二进制文件                                           建立新文件

       “ab”(追加)                                向二进制文件尾添加数据                                                             出错

       “r+”(读写)                                 为了读和写,打开一个文本文件                                                  出错

       “w+”(读写)                                为了读和写,建立一个新的文本文件                                          建立新文件

       “a+”(读写)                                为了读和写,打开一个文本文件                                                  出错

       “rb+”(读写)                               为了读和写,打开一个二进制文件                                              出错

       “wb+”(读写)                              为了读和写,建立一个新的二进制文件                                       建立新文件

       “ab+”(读写)                               为读写打开一个二进制文件                                                         出错

21.asscii码表
                                                                                                                      
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C程序设计(第四版)学习笔记 的相关文章

  • Vulnhub入门实战-Wakanda

    下载链接 描述 1 探测主机的IP地址 2 使用nmap查看靶机开放端口 开放了4个端口 老样子先从http下手 3 进去发现没什么可以点的 于是进行目录扫描 状态码都是200 但是size为0 所以返回的都是空页面 查看主页源代码 发现一
  • Scrapy----Scrapy架构及工作流程

    原文链接 Scrapy Scrapy架构及工作流程 一 Scrapy架构图 scrapy的架构图如下 红色箭头表示工作流程 二 Scrapy的组成 Scrapy Engine Scrapy Engine主要用来协调数据流在Scrap各个组件
  • [蓝桥杯][2014年第五届真题]兰顿蚂蚁

    题目 题目链接 题解 DFS 没什么难的吧 可能实现的时候用时长短 代码简洁程度不同而已 代码 include

随机推荐

  • 《响应式Web设计实践》学习笔记

    第1章 无处不在的Web 1 4 成为响应式的 Ethan Marcotte利用三种已有工具 媒介查询 media queries 流动布局 fluid grids 和自适应图片 scalable images 创建了一个在不同分辨率屏幕下
  • 每日一道基础编程题目(牛客网)--基础编程篇(NO.1)

    文章目录 1 每日一道基础编程题目 牛客网 前言 题目引入 结语 1 每日一道基础编程题目 牛客网 前言 从今天起 我会日更一些编程题目 比较基础的 适合期末复习的题目 分享给大家 和大家一起进步 题目引入 首先我们先看一下这个代码 这个的
  • 邻桌为何一天就学完了SQL基础语法,数据分析必学的SQL,满满硬货

    因为开学原因 导致好久没有更新博客了 谁家大学生一周五天早八 今天这篇分享数据库操作和 SQL SQL 全称是 Structured Query Language 翻译后就是结构化查询语言 是一种数据库查询和程序设计语言 用于存取数据以及查
  • Eclipse SVN 更新报: “is too old(format10,createdbySubversion1.6)”解决方法

    原因 版本太低导致 更新一下就可以了 方法 项目上右键 Team upgrade
  • android 模拟点击localinstrumentation,android通过Instrumentation来模拟键盘点击操作

    android app Instrumentation好像原来是用来做测试的 可以用来模拟很多activity的操作 主要代码如下 package com qefee testinstrumentation import android a
  • 常用git和repo命令

    常用git和repo命令 文章收集了最近使用的一些repo和git命令 下图是个人理解的git文件状态转换图 更详细的Pro git 文档 更准确的应该是这样 相关概念 名称 意义 repo 谷歌用Python脚本写的调用git的一个脚本
  • 自动化测试_49自动化测试中最常见的Selenium异常

    自动化测试 开发人员将始终在编写代码时牢记不同的场景 但是在某些情况下 实现可能无法按预期工作 相同的原则也适用于测试代码 该代码主要用于测试现有产品的功能 发现bug并使产品100 无缺陷 正确地说 真理总是比小说更陌生 当您执行Sele
  • matlab 杨氏双缝干涉实验

    目录 一 算法原理 二 代码实现 三 结果展示 本文由CSDN点云侠原创 原文链接 如果你不是在点云侠的博客中看到该文章 那么此处便是不要脸的爬虫 一 算法原理 杨氏双缝干涉实验是利用分波振面法获得相干光束的典型例子 如图1 所示 在普通单
  • 系列:7、 Kubernetes 安全性

    Kubernetes 安全性 我们将讨论 Kubernetes 安全性 当我们在使用 Kubernetes 时 出于安全原因 我们有时会希望限制网络的访问或限制某些用户查看或运行某些命令等 为此 我们必须使用不同的 Kubernetes 概
  • 探秘app.asar

    开发过Electron客户端的都知道 在package json的build节点下 如果设置 asar true 软件打包时会把程序文件合成为一个app asar文件 软件安装后 可以在安装目录的resources子目录下找到它 packa
  • GitBash:修改GitBash主题配色和字体

    打开GitBash 使用命令 cd 然后 vi minttyrc 使用下列内容替换已有内容 Font Consolas FontHeight 13 ForegroundColour 131 148 150 BackgroundColour
  • 送书【新书】

    文末查看送书规则 Apache ECharts incubating 下文简称ECharts 是由百度捐献给Apache开源软件基金会的一个开源可视化工具 目前广泛应用于PC端和移动端的大部分浏览器 截至本书完稿时 该项目正在Apache开
  • 在Visual Studio 2019中使用Qt5.14.2并配置相关路径(含opencv/halcon)联合编程配置

    1 Qt下载安装 参考链接 https blog csdn net weixin 41977337 article details 106859728 1 QT下载 推荐下载Qt5 12 3版本 5 12为LTS长期支持版本 官方下载链接
  • Shell在日常工作中的应用实践

    作者 京东物流 李光新 1 Shell可以帮我们做什么 作为一名测试开发工程师 在与linux服务器交互过程中 大都遇到过以下这些问题 一次申请多台服务器 多台服务器需要安装相同软件 配置相同的环境 同样的操作需要重复多次 工作中经常会使用
  • std::string___CH_22

    22 1 std string and std wstring The standard library contains many useful classes but perhaps the most useful is std str
  • java对比数据库_对比不同的数据库连接的异同

    博主在学习和使用数据库连接时 遇到的问题 这个几个数据库连接究竟有什么不同 到底什么时候该使用哪个会更好一点 带着这个问题我们先去了解常见的数据库连接 1 常见的数据库连接有哪些 在我们初期学习 使用数据库时 用的最多的莫过于MySQL 简
  • 09_Redux的应用

    目录 一 什么是redux 二 redux的应用 2 1 求和案例 2 1 1 纯react版本 2 1 2 redux版本 1 测试版本 2 正式版本 三 react redux 3 1 react redux的使用 1 UI组件 com
  • Windows安装Python(图解)亲测有效!!!

    目录 1 下载Python 2 安装 2 1 自定义安装 并添加 环境变量 2 2 中间多步 Next 3 测试是否安装成功 在 Windows 上安装 Python 和安装普通软件一样简单 下载安装包以后猛击 下一步 即可 如果安装多个版
  • Zabbix的聚合图形配置

    Zabbix的聚合图形配置 一 查看现有的聚合图形 二 编辑聚合图形 三 查看编辑好的聚合图形 一 查看现有的聚合图形 二 编辑聚合图形 三 查看编辑好的聚合图形
  • C程序设计(第四版)学习笔记

    1 for语句 for fahr 0 fahr lt 300 fahr fahr 20 第一部分是初始化部分 仅在进入循环前执行一次 第二部分是条件部分 如果结果值为真 则执行循环体 此后将执行第三部分 增加步长 2 我们通常把函数定义中圆