<html lang="zh-CN">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<body class="nodata " style="">
<main style="width:100%">
<div class="blog-content-box">
<div class="article-title-box">
<h1 class="title-article" id="articleContentId">C语言基础知识(33)</h1>
</div><div id="article_content" class="article_content clearfix">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-044f2cf1dc.css">
<div id="content_views" class="htmledit_views">
<div class="kdocs-document">
<h2 style=""><a name="t0"></a><span class="kdocs-bold" style="font-weight:bold;">编写一个程序来计算整数中的集合位</span></h2>
<p style="">参考答案如下:</p>
<p style="text-align:null;">请参考下面代码实现:</p>
<p style="">unsignedintNumberSetBits(unsignedint n){unsignedint CountSetBits=0;while(n){</p>
<p style=""> CountSetBits += n &1;</p>
<p style=""> n >>=1;}return CountSetBits;}</p>
<h2 style="text-align:left;"><a name="t1"></a><span class="kdocs-bold" style="font-weight:bold;">文件输入/输出</span></h2>
<p style="">函数: fopen()、<a href="https://so.csdn.net/so/search?q=getc&spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=getc&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"getc\"}"}" data-tit="getc" data-pretit="getc">getc</a>()、putc()、exit()、fclose()、fprintf()、fscanf()、fgets()、fputs()、rewind()、fseek()、ftell()、fflush()、fgetpos()、fsetpos()、feof()、ferror()、ungetc()、setvbuf()、fread()、fwrite(). 如何使用C的标准I/O函数系列处理文件. 文本模式和二进制模式,文本格式和二进制格式,以及缓冲和非缓冲I/O. 使用既可以顺序存取文件又可以随机存取文件的函数.</p>
<h2 style=""><a name="t2"></a><span class="kdocs-bold" style="font-weight:bold;">整型数据</span></h2>
<p style="">是指不带小数的数字(int,short int,long int, unsigned int, unsigned short int,unsigned long int):</p>
<p style="text-align:null;">注:</p>
<p style="">int short int long int是根据编译环境的不同,所取范围不同。</p>
<p style="">而其中short int和long int至少是表中所写范围, 但是int在表中是以16位编译环境写的取值范围。</p>
<p style="">另外 c语言int的取值范围在于他占用的字节数 ,不同的编译器,规定是不一样。</p>
<p style="">ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。但是在VC里,一个int是占4个字节的。</p>
<p style="text-align:null;">浮点数据是指带小数的数字。</p>
<p style="text-align:null;">生活中有很多信息适合使用浮点型数据来表示,比如:人的体重(单位:公斤)、商品价格、圆周率等等。</p>
<p style="text-align:null;">因为精度的不同又分为3种(float,double,long double)</p>
<h2 style=""><a name="t3"></a><span class="kdocs-bold" style="font-weight:bold;">在C程序中应该什么时候使用指针</span></h2>
<p style="text-align:null;">在C程序中有下面情节应该使用指针:</p>
<ul><li style="margin-left:1.4em;list-style-type:disc;text-indent:0;"><p>传递大型结构喜欢的服务器请求或响应数据包。</p></li></ul>
<ul><li style="margin-left:1.4em;list-style-type:disc;text-indent:0;"><p>实现链表和二叉树。</p></li></ul>
<ul><li style="margin-left:1.4em;list-style-type:disc;text-indent:0;"><p>GPIO 或硬件寄存器。</p></li></ul>
<ul><li style="margin-left:1.4em;list-style-type:disc;text-indent:0;"><p>从函数中获取地址或更新值(通过引用调用)</p></li></ul>
<ul><li style="margin-left:1.4em;list-style-type:disc;text-indent:0;"><p>创建动态数组。</p></li></ul>
<ul><li style="margin-left:1.4em;list-style-type:disc;text-indent:0;"><p>使用函数指针创建回调函数。</p></li></ul>
<p style="text-align:left;">注意:除此之外,还有很多地方需要用到指针。</p>
<h2 style="text-align:left;"><a name="t4"></a><span class="kdocs-bold" style="font-weight:bold;">结构和其他数据形式</span></h2>
<p style="">关键词:struct、union、typedef. 运算符:. ->. 什么是C语言中的结构,如何创建结构模板和结构变量. C的 typedef 工具. 联合及指向函数的指针.</p>
<h2 style="text-align:left;"><a name="t5"></a><span class="kdocs-bold" style="font-weight:bold;">格式化输出语句</span></h2>
<p style="text-align:null;">格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。</p>
<p style="text-align:null;">其格式为:printf("输出格式符",输出项);</p>
<p style="text-align:null;">当输出语句中包含普通字符时,可以采用以下格式:</p>
<p style="">printf("普通字符输出格式符", 输出项);</p>
<p style="">注意:格式符的个数要与变量、常量或者表达式的个数一一对应</p>
<h2 style=""><a name="t6"></a><span class="kdocs-bold" style="font-weight:bold;">C语言中的 void 或泛型指针是什么</span></h2>
<p style="">参考答案如下:</p>
<p style="text-align:null;">void 指针是通用指针。它没有关联的数据类型,这就是为什么它可以存储任何类型对象的地址并类型转换为任何类型的原因。</p>
<p style="text-align:null;">根据 C 标准,指向 void 的指针应具有与指向字符类型的指针相同的表示和对齐要求。 void 指针声明类似于普通指针,但不同之处在于使用 void 关键字代替数据类型。</p>
<p style="text-align:null;">语法:</p>
<p style="">void* Pointer_Name;</p>
<h2 style="text-align:left;"><a name="t7"></a><span class="kdocs-bold" style="font-weight:bold;">常量</span></h2>
<p style="text-align:null;">在程序执行过程中,值不发生改变的量称为常量。</p>
<p style="text-align:null;">mtianyan: C语言的常量可以分为直接常量和符号常量。</p>
<p style="text-align:null;">直接常量也称为字面量,是可以直接拿来使用,无需说明的量,比如:</p>
<p style="">整型常量:13、0、-13;</p>
<p style="">实型常量:13.33、-24.4;</p>
<p style="">字符常量:‘a’、‘M’</p>
<p style="">字符串常量:”I love china!”</p>
<p style="text-align:null;">在C语言中,可以<span class="kdocs-bold" style="font-weight:bold;">用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义</span>,其一般形式为</p>
<pre class="kdocs-plaintext set-code-show" data-index="0" name="code"><code class="language-plaintext hljs">#define 标识符 常量值 </code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
<p style="text-align:null;">#include <stdio.h></p>
<p style="text-align:null;">#define POCKETMONEY 10 //定义常量及常量值</p>
<p style="text-align:null;">int main()</p>
<p style="text-align:null;">{</p>
<p style="text-align:null;">// POCKETMONEY = 12; //小明私自增加零花钱对吗?</p>
<p style="text-align:null;">printf("小明今天又得到%d元零花钱\n", POCKETMONEY);</p>
<p style="text-align:null;">return 0;</p>
<p style="text-align:null;">}</p>
<p style="text-align:null;">符号常量不可以被改变。</p>
</div>
</div><di