C基础
教程
shaobo Huang
化繁为简,高效极致
展开
-
C语言的三套标准:C89、C99和C11
我们今天使用的 Windows、Linux、Mac OS 等操作系统都是由一种叫做 Unix 的系统演化而来。Unix 作为80年代主流的操作系统,是整个软件工业的基础,是现代操作系统的开山鼻祖,C语言就是为 Unix 而生的。Unix 和C语言的开发者是同一人,名字叫丹尼斯·里奇(Dennis MacAlistair Ritchie)。C89 标准到了80年代,C语言越来越流行,广泛被业...转载 2020-01-02 15:57:23 · 9151 阅读 · 0 评论 -
【C语言】23-typedef
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略这讲介绍C语言中很常用的一个关键字—typedef。一、typedef作用简介我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。#include <stdio.h>typedef int ...转载 2019-12-03 16:05:15 · 185 阅读 · 0 评论 -
【C语言】22-枚举
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略上一讲介绍了结构体类型,这讲就介绍C语言中的另一种数据类型—枚举类型。枚举类型在iOS中也是很常用的,用法跟Java中的枚举类似。一、枚举的概念枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。当一个变...转载 2019-12-03 15:57:24 · 215 阅读 · 0 评论 -
【C语言】21-结构体
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略C语言的核心部分都说得七七八八了,相信大家已经对C语言的基本数据类型(char\int\float)、数组、指针都很熟悉了,今天来学习C语言中另外一种数据类型:结构体。在iOS开发中,结构体是经常用到的数据类型,使用频率不亚于指针...转载 2019-12-03 15:55:10 · 203 阅读 · 0 评论 -
【C语言】20-static和extern关键字2-对变量的作用
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略上一讲介绍了static和extern对函数的作用,static用来定义一个内部函数,不允许其他文件访问;extern用来定义和声明一个外部函数,允许其他文件访问。static和extern对变量也有作用,不过跟函数有点差别。C...转载 2019-12-03 15:45:13 · 141 阅读 · 0 评论 -
【C语言】19-static和extern关键字1-对函数的作用
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略上一讲中大致介绍了变量的类型,不同类型的变量有不同的存储类型、不同的生命周期、不同的作用域。这讲介绍2个比较重要的关键字:static和extern。static和extern不仅可以用在变量上,还可以用在函数上。这讲先介绍它们...转载 2019-12-03 15:36:45 · 143 阅读 · 0 评论 -
【C语言】18-变量类型
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略C语言有丰富的数据类型和运算符,因此计算能力非常强大,计算过程中使用的值一般用变量来存储。变量也是有分类型的,不同类型的变量有不同的存储类型、不同的生命周期、不同的作用域,C语言也提供了一些关键字来设置变量的属性(比如设置存储类型...转载 2019-12-03 15:30:31 · 193 阅读 · 0 评论 -
【C语言】17-预处理指令3-文件包含
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略这讲介绍最后一个预处理指令—文件包含一、基本概念其实我们早就有接触文件包含这个指令了, 就是#include,它可以将一个文件的全部内容拷贝另一个文件中。二、一般形式1.第1种形式#include <文件名>...转载 2019-12-03 15:27:51 · 192 阅读 · 0 评论 -
【C语言】16-预处理指令2-条件编译
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略上一篇已经介绍了预处理指令中的宏定义,这篇就介绍一下条件编译条件编译的概念在很多情况下,我们希望程序的其中一部分代码只有在满足一定条件时才进行编译,否则不参与编译(只有参与编译的代码最终才能被执行),这就是条件编译。一、基本...转载 2019-12-03 15:22:47 · 140 阅读 · 0 评论 -
【C语言】15-预处理指令1-宏定义
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略预处理指令简介C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译为了区分预处理指令和一般的C语句,...转载 2019-12-03 15:18:21 · 222 阅读 · 0 评论 -
【C语言】14-返回指针的函数与指向函数的指针
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略前言前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧。指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理、提升程序性能。关于指针的内容还非常多,比如指针数组、指向数组的指针、指向...转载 2019-12-03 15:09:06 · 173 阅读 · 0 评论 -
【C语言】13-指针和字符串
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略字符串回顾一个字符串由一个或多个字符组成,因此我们可以用字符数组来存放字符串,不过在数组的尾部要加上一个空字符’\0’。char s[] = "mj";上面的代码定义了一个字符数组s来存储字符串"mj",系统会自动在尾部加...转载 2019-12-03 15:03:46 · 873 阅读 · 0 评论 -
【C语言】12-指向一维数组元素的指针
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量。数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素。一、用指针指向一维数组的元素// 定义一个i...转载 2019-12-03 14:55:03 · 2049 阅读 · 0 评论 -
【C语言】11-指针
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言。究竟什么是指针呢?我们先来看一个概念。直接引用回想一下,之前我们是如何更改某个变量的值?我们之前是通过变量名来直接引用变...转载 2019-12-03 12:18:04 · 164 阅读 · 0 评论 -
【C语言】10-字符和字符串常用处理函数
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略一、字符处理函数下面介绍的两个字符处理函数都是在stdio.h头文件中声明的。1.字符输出函数putcharputchar(65); // Aputchar('A'); // Aint a = 65;putchar...转载 2019-11-30 17:55:07 · 283 阅读 · 0 评论 -
【C语言】09-字符串
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略一、字符串简介在Java中,一个字符串可以用String类型来存储String s = "MJ";C语言中没有String这种类型。其实字符串就是字符序列,由多个字符组成,所以在C语言中,我们可以用字符数组来存储字符串...转载 2019-11-30 17:49:13 · 226 阅读 · 0 评论 -
【C语言】08-数组
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。地址1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函...转载 2019-11-30 17:40:50 · 301 阅读 · 0 评论 -
【C语言】07-基本语句和运算
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略一、基本语句C语言的基本语句跟Java中的差不多,所以,这里只是简单地提一下循环语句(do while、while、for)条件语句(if 、if-else、switch)goto语句二、基本运算计算机的基本能力就...转载 2019-11-30 17:29:01 · 316 阅读 · 0 评论 -
【C语言】06-基本数据类型
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略C语言有丰富的数据类型,因此它很适合用来编写数据库,如DB2、Oracle都是C语言写的。C语言的数据类型大致可以分为下图中的几类:一、变量跟其他语言一样,C语言中用变量来存储计算过程使用的值,任何变量都必须先定义类型再使...转载 2019-11-30 16:47:29 · 281 阅读 · 0 评论 -
【C语言】05-printf和scanf函数
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略一、printf函数这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据1.用法...转载 2019-11-30 17:10:05 · 490 阅读 · 0 评论 -
【C语言】04-函数
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略一、函数的分类前面已经说过,C语言中的函数就是面向对象中的"方法",C语言的函数可以大概分为3类:1.主函数,也就是main函数。每个程序中只能有一个、也必须有一个主函数。无论主函数写在什么位置,C程序总是从主函数开始执行2...转载 2019-11-29 20:49:30 · 196 阅读 · 0 评论 -
【C语言】03-第一个C程序代码分析
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略在上一篇中我们已经创建了一个C程序,接下来分析一下里面的代码。项目结构如下:一、代码分析打开项目中的main.c文件(C程序的源文件拓展名为.c),可以发现它是第一个C程序中的唯一一个源文件,代码如下:#include ...转载 2019-11-29 20:49:20 · 340 阅读 · 0 评论 -
【C语言】02-第一个C程序
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略由于我们最终要学习的是iOS开发,因此就使用Mac平台下的Xcode搭建C语言开发环境,而不使用Windows系统如果你是在Windows环境下,可以下载这个简单的C语言学习工具:C/C++程序设计学习与实验系统 或者 下载微软...转载 2019-11-29 20:49:09 · 207 阅读 · 0 评论 -
【C语言】01-C语言概述
为什么iOS开发要先学C语言?iOS开发的核心语言是Objective-C,Objective-C是在C语言的基础加了一层面向对象的语法。为了能够更好地掌握Objective-C,我们可以先学习C语言,然后在C语言的基础上升华到Objective-C。当然,你也可以直接学习Objective-C,只是我个人建议先学习C语言,再学习Objective-C,最后学习iOS开发,这样效果会好一点。一...转载 2019-11-29 20:48:57 · 198 阅读 · 0 评论