
C语言
文章平均质量分 89
张十五
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
函数指针
通常,函数指针常用作另一个函数的参数,告诉该函数要使用哪一个函数。例如,排序数组涉及比较两个元素,以确定先后。如果元素是数字,可以使用>运算符;如果元素是字符串或结构,就要调用函数进行比较。C库中的 qsort()函数可以处理任意类型的数组,但是要告诉qsort()使用哪个函数来比较元素。为此, qsort()函数的参数列表中,有一个参数接受指向函数的指针。然后,qsort()函数使用该函数提供的方案进行排序,无论这个数组中的元素是整数、字符串还是结构。我们来进一步研究函数指针。首先,什么是函数指原创 2021-10-21 19:39:10 · 158 阅读 · 0 评论 -
数组和指针(下)
指针操作可以对指针进行哪些操作? C提供了些基本的指针操作,下面的程序示例中演示了8种不同的操作。为了显示每种操作的结果,该程序打印了指针的值(该指针指向的地址)、储存在指针指向地址上的值,以及指针自己的地址。如果编译器不支持%p转换说明,可以用%u或%lu代替%p:如果编译器不支持用%td转换说明打印地址的差值,可以用%d 或号%ld来代替。以下程序演示了指针变量的8种基本操作。除了这些操作,还可以使用关系运算符来比较指针。#include<stdio.h>#include<st原创 2021-09-04 21:05:22 · 309 阅读 · 0 评论 -
数组和指针(上)
人们通常借助计算机完成统计每月的支出、日降雨量、季度销售额等任务。企业借助计算机管理薪资,库存和客户交易记录等。作为程序员,不可避免地要处理大量相关数据。 通常,数组能高效便捷地处理这种数据。本篇简单地介绍了数组,将进一步地学习如何使用数组。 着重分析如何编写处理数组的函数。这种函数把模块化编程的优势应用到数组。通过本篇的学习。你将明白数组和指针关系密切。数组前面介绍过,数组由数据类型相同的一系列元素组成。需要使用数组时,通过声明数组告诉编译器数组中内含多少元素和这些元素的类型。编译器根据这些信息正确地原创 2021-09-04 00:26:04 · 487 阅读 · 1 评论 -
位操作
在C语言中,可以单独操控变量中的位。读者可能好奇,竟然有人想这样做,有时必须平单独操作位,而且非常有用。例如,通常向硬件设备发送一两个字节来控制这些设备, 其中每个位*(bit)*都有特定的含义。另外,与文件相关的操作系统信息经常被储存,通过使用特定位表明特定项,许多压缩和加密操行都是直接处理单独的位。高级语言一般不会处理这级别的细节, C在提供高级语言便利的同时,还能在为汇编语言所保留的界别上工作,这使其成为编写设备驱动程序和嵌入式代码的首选语言。首先要介绍位,字节,二进制记数法和其他进制记数系统的一些原创 2021-09-03 17:51:19 · 1003 阅读 · 0 评论 -
printf()和scanf()(下)
使用scanf()刚学完输出,接下来我们转至输入——学习scanf()函数。C库包含了多个输入函数,scanf()是最通用的一个,因为它可以读取不同格式的数据。当然,从键盘输入的都是文本,因为键盘只能生成文本字符,字母、数字和标点符号。如果要输入整数2014,就要键入字符2、0、1、4。如果要将其储存为数值而不是字符串中,程序就必须把字符依次转换成数值,这就是seanf()要做的,sconf()把输入的字符串转换成整数,浮点数、字符成字符串,而print()正好与它相反,把整数,浮点数、字符和字符串转换成原创 2021-09-01 20:29:01 · 314 阅读 · 0 评论 -
printf()和scanf()(上)
printf ()函数和scanf ()函数能让用户可以与程序交流,它们是输入/输出函数,或简称为I/O函数。它们不仅是C语言中的I/O函数,而且是最多才多艺的函数。过去,这些函数和C库的些其他函数一样,并不是C语言定义的部分。 最初,C把输入/输出的实现留给了编译器的作者,这样可以针对特殊的机器更好地匹配输入/输出。后来,考虑到兼容性的问题,各编译器都提供不同版本的printf()和scanf()。尽管如此,各版本之间偶尔有一 些差异。 C90 和C99标准规定了这些函数的标准版本。虽然printf()原创 2021-08-31 21:33:24 · 227 阅读 · 0 评论 -
字符串输入/输出
字符串输入如果想把一个字符串读入程序,首先必须预留储存该字符串的空间,然后用输入函数获取该字符串。分配空间要做的一件事是分配空间,以储存所稍后读入的字符串,前面提到过,这意味着必须要为字符串分配足够的空间。不要指望计算机在读取字符串时顺便计算它的长度,然后再分配空间(计算机不会这样做,除非你编写一个处理这些任务的函数)。假设编写了如下代码:char *name :scanf ("%s",name) ;虽然可能会通过编译(编译器很可能给出警告),但是在读入name时,name可能会擦写掉程序中原创 2021-08-30 19:39:50 · 1263 阅读 · 0 评论 -
文件输入/输出(下)
指向标准文件的指针stdio.h头文件把3个文件指针与3个标准文件相关联,C程序会自动打开这3个标准文件。如表1所示:这些文件指针都是指向FILE的指针,所以它们可用作标准u0函数的参数,如feosel1)中的印。接下来,我们用一个程序示例创建一个新文件, 并写入内容。...原创 2021-08-29 19:45:28 · 221 阅读 · 0 评论 -
文件输入/输出(上)
什么是文件文件*(file)* 通常是在磁盘或固态硬做上的一段已命名的存储区。对我们而言,stdio.h就是一个文件的名称,该文件中包含一些有用的信息。 然而,对操作系统而言,文件更复杂一些。例如,大型文件会被分开储存,或者包含些额外的数据, 方便操作系统确定文件的种类。然而,这都是操作系统所关心的,大多数程序员更关心的是C程序如何处理文件。C把文件看作是一系列连续的字 ,每个字节都能被单独读取。这与UNIX环境中(C的发源地)的文件结构相对应。由于其他环境中可能无法完全对应这个模型,C提供两种文件模式:原创 2021-08-28 22:41:28 · 294 阅读 · 0 评论 -
分配内存:malloc()和free()
我们之前学过的存储类别有一个共同之处:在确定用哪种存储类别后,根据已制定好的内存管理规则,将自动选择其作用域和存储期。然而,还有更灵活的选择,即利用库函数分配和和管理内存。首先,回顾一下内存分配,所有的程序都必须预留足够的内存来存储程序使用的数据,这些内存中有些是自动分配的,有的显式指定分配一定数量的内存。静态数据在程序载入内存时分配,而自动数据在程序执行时分配,并在程序离开该块是销毁。int x;char str[]="Hello,Word"];int arr[10]={0};C语言还可以让我原创 2021-08-27 13:21:19 · 993 阅读 · 0 评论 -
简陋的扫雷游戏 (位运算,C语言)
要做一个游戏,我们要知道他的游戏规则。首先在未进行任何操作的时候,地图是未知的。左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果不幸触雷,则游戏结束。右键单击:在判断为地雷的方块上按下右键,可以标记地雷。重复一次或两次操作可取消标记。标记出所有雷,则游戏成功通关。因为游戏构简陋,所以所有的操作都是通过输入指令来进行的,一步操作输入三个变量,一共原创 2021-06-24 12:39:22 · 353 阅读 · 0 评论