1. C语言是1972年发明,首次使用是用于重写UNIX操作系统(UNIX以前是用汇编写的),随着UNIX的成功,C语言也得到了大幅度地推广。C语言是一门面向过程的语言,非面向对象,Objective-C和C++是面向对象的。

2. C语言的特点:丰富的运算符(34种),丰富的数据类型(整型int,浮点型float,字符型char,数组类型int[],指针类型void*,结构体类型struct,共用体类型union,注意没有boolean类型),允许直接访问物理位置,对硬件进行操作。既有高级语言的功能,又有汇编语言对位(bite),字节和地址进行操作,而这三者是计算机最基本的工作单元,高效率和可移植性好。

3. C语言的用途:有强大的数据处理能力,而且允许直接访问物理地址,直接对硬件操作,因此它适用于编写系统软件,图形处理,单片机程序,嵌入式系统开发等。android的底层系统是用C语言写的。

iOS开发的核心也是Objective-C,OC就是在C语言的基础上加了一层面向对象的语法。

4. #include<stdio.h>

  • #include 是C语言的预处理指令之一,所谓预处理,就是在编译之前做的处理,预处理指令一般以 # 开头
  • #include 指令后面会跟着一个文件名,预处理器发现 #include 指令后,就会根据文件名去查找文件,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源文件中的 #include 指令,就像你把被包含文件中的全部内容拷贝到这个 #include 指令所在的位置一样
  • 如果被包含的文件拓展名为.h,我们称之为"头文件"(Header File),头文件可以用来声明函数("函数"就是面向对象中的"方法"),要想使用这些函数,就必须先用 #include 指令包含函数所在的头文件
  • #include 指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp等,甚至.txt,.abc等等都可以

5. main函数

  • 前面也已经提到,C中的函数就是面向对象中的"方法"。C语言是一门面向过程的语言,是以过程为中心的编程思想,就是先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用函数就可以了
  • 一个C程序中一定会有一个main函数,也只能有一个main函数。main函数是整个C程序的入口。main.c的第3行代码就定义了一个main函数。
  • main函数的返回值为int类型,接收2个参数,其实可以不写参数

6. 开发和运行C程序的步骤

A. 编写程序(C语言源文件的扩展名为".c",源文件以ASCII码形式存储,不能直接被计算机执行,因为计算机只能识别二进制指令,0和1)

B. 编译(VC环境下,把C语言的源程序翻译成计算机可以识别的二进制形式的目标代码文件,这个过程称为编译,由C的编译器完成;在编译的同时,还会对源程序的语法等进行检查,如果成功则声成目标文件,目标文件名跟源程序文件名一样,扩展名为“.obj”;每个源文件是单独进行编译的,假如一个项目中有多个.c源文件,则会生成多个.obj目标,一般情况下,.obj目标文件是有关联的,可能a.obj会调用b.obj中定义的一个函数,因此不能单独的被计算机执行,而且目标文件中并不包含程序运行所需要的库函数)

C. 链接(VC环境下,将所有的管联的obj目标文件,以及系统提供的C库函数等组合在一起生成可执行文件的过程,成为“链接”,链接生成的可执行文件名跟源程序文件同名,扩展名为.exe,计算机可以直接执行。)

D. 如果是在window环境下,直接双击“.exe”文件即可运行C语言程序

 

1.在编译前先执行#include指令,拷贝stdio.h的内容到源程序中

2.编译源程序,生成目标文件obj

3.链接C语言函数库,生成可执行文件

4.运行可执行文件,在屏幕上输出"Hello, World!"

 

数据分为动态类型和静态类型

静态类型数据一般是以文件的形式存储在硬盘上,如文档等

动态类型数据是指在程序运行过程中,动态产生的临时数据,一般存储在内存中。访问速度会比硬盘快N倍。

静态数据转化动态数据:从磁盘加载到内存,播放本地视频

动态数据转化静态:手机拍照储存到手机上的硬盘

作为程序员,最关心的是内存中的动态数据,因为我们写的程序就是在内存中的。

数据类型包括:基本数据类型(整型【short,int,long】,字符型【char】,实型/浮点型【float,double】),构造类型(数组,结构体,枚举,共用体),指针类型,空类型(void)

 

常量

整型常量int

实型常量(小数)单精度float和双精度double 默认情况下编写的小数都是双精度的实型常量,也就是默认情况下所有小数都是double,5.2f单精度float。

字符常量char 'a','1',字符常量的特殊'\n'

字符串常量 "ab"

 

 变量经常需要改变的量,去超市,放东西到储物柜中的一格,会给你一张纸条,根据纸条才可以拿回自己的东西,储存柜的一格就是变量的内存空间,字条就是变量名,你拿和放就是修改变量名对应内存中的数据。