ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C和指针笔记-第1、2章 基本概念

2020-05-11 18:57:09  阅读:252  来源: 互联网

标签:gets 函数 笔记 NUL 调用函数 字符串 指针 基本概念 字节


这是我读《C和指针》第1、2章做的笔记,比较基础,主要内容是C语言我以前没有注意到的地方,希望也能对你有所帮助

 

  • 注释

在有些语言中,注释有时用于把一段代码“注释掉”,也就是使这段代码在程序中不起作用,但并不将其真正从源文件中删除。如果你试图在一段C语言代码的首尾分别加上/*和*/符号来“注释掉”这段代码,你不一定能如愿。如果这段代码内部原先就有注释存在,这样做就会出问题。要从逻辑上删除一段C代码,更好的办法是使用#if指令:

 

  • 预处理指令

预处理指令有两种:#include XXX 和 #define XXX:

 

预处理器读入源代码,根据预处理指令对其进行修改,然后把修改过的源代码递交给编译器。

在例子中,预处理器用名叫stdio.h的库函数头文件的内容替换第1条#include指令语句,其结果就仿佛是stdio.h的内容被逐字写到源文件的那个位置。第2、3条指令的功能类似,只是它们所替换的头文件分别是stdlib.h和string.h.

stdio.h头文件使我们可以访问标准I/O库中的函数,这组函数用于执行输入和输出。

stdlib.h定义了EXIT_SUCCESS和EXIT_FAILURE符号。

string.h头文件提供了用来操纵字符串的函数。

  • 数组参数

在C语言中,数组参数是以引用(reference)形式进行传递的,也就是传址调用,而标量和常量则是按值(value)传递的。
在函数中对标量参数的任何修改都会在函数返回时丢失,因此,被调用函数无法修改调用函数以传值形式传递给它的参数。然而,当被调用函数修改数组参数的其中一个元素时,调用函数所传递的数组就会被实际地修改。

  • gets函数

gets函数从标准输入读取一行文本并把它存储于作为参数传递给它的数组中。

一行输入由一串字符组成,以一个换行符(newline)结尾。gets函数丢弃换行符,并在该行的末尾存储一个NUL字节(一个NUL字节是指字节模式为全0的字节,类似'\0'这样的字符常量)。然后,gets函数返回一个非NULL值,表示该行已被成功读取。当gets函数被调用但事实上不存在输入行时,它就返回NULL值,表示它到达了输入的末尾(文件尾)。

  • 字符串常量

尽管C语言并不存在"string"数据类型,但在整个语言中,存在一项约定:字符串就是一串以NUL字节结尾的字符。NUL是作为字符串终止符,它本身并不被看作是字符串的一部分。

字符串常量就是源程序中被双引号括起来的一串字符。例如,字符串常量:"Hello"

在内存中占据6个字节的空间,按顺序分别是H,e、l、l、o和NUL

 

参考:C和指针(第二版) 人民邮电出版社

标签:gets,函数,笔记,NUL,调用函数,字符串,指针,基本概念,字节
来源: https://www.cnblogs.com/XIEjm/p/12870698.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有