黑马程序员-IOS基础之C语言基础语法

时间:2022-03-31 12:49:50

一、基础语法

(1)计算机和软件开发常识

计算机的基本原理是:存储程序和程序控制。预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存中。

1.硬件基本构成:硬盘、内存、CPU。

2.各个部件之间的运作协调。

如图:

黑马程序员-IOS基础之C语言基础语法

计算机只能识别0和1

① 0和1组成的指令

② 0和1组成的数据


(二)、计算机语言发展史

机器语言——>汇编语言——>高级语言——>面向对象和面向过程

面向对象的语言有:C语言

面向过程的语言有:JAVA、C#

① 机器语言:能被计算机直接识别,直接对硬件作用(优点)

  可读性差,不同计算机型号的机器语言不一样(缺点)

② 汇编语言:直接访问,控制计算机的各种硬件设备、占用内存少、运行速度快(优点)

   可移植性差、符号多难记、难调试、开发效率低


(三)、C语言介绍

C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

1972年发明,首次使用时用于重写Unix操作系统。

特点:

① 简洁紧凑、灵活方便

② 运算符丰富

③ 数据类型丰富(相对机器语言和汇编语言)

④ C是结构式语言

⑤ C语法限制不太严格、程序设计*度大

⑥ C语言允许直接访问物理地址,可以对硬件直接进行操作

⑦ C语言程序生成代码质量高,程序执行效率高

⑧ C语言适用范围广、可移植好

版本:

1978   丹尼斯·里奇(Dennis Ritchie)和 布莱恩·科尔尼干(Brian Kernighan) K&R C

1989   美国国家标准局  ANSI C

1999   C99

2011   C11


(四)、第一个C程序-程序的组成

C程序的结构:由函数和声明组成

C程序的入口是一个名字叫做main的函数

  代码:

#include <stdio.h>

int main()
{
        printf("第一个C语言程序");
        return 0;
}

(五)、编写一个C语言程序的步骤

① 编写代码

② 编译:把C语言代码翻译成0和1

工具:编译器 (Xcode gcc)(Xcode4 LLVM ——>clang)

指令:cc -c 文件名.c(-c compile 编译)

编译成功会生成一个.o目标文件

③ 链接:其实就是把我们项目中所有相关联的.o目标文件跟系统自带的函数库合并在一起,生成一个可执行文件

链接器

指令:cc 文件名.o

④ 运行

./a.out


(六)、Unix指令

pwd 查看当前路径

ls 列出当前路径的所有内容

mkdir 新建目录

rmdir 删除目录(该目录下面没有文件)

rm删除文件

cd进入/改变当前操作的目录

cd ..返回上一层

cd /返回根目录

touch创建文件

who显示当前用户名

clear清屏

open打开一个文件或文件夹(open ./ 打开当前目录的文件夹)

tab键可补全指令名称、文件名、文件夹名等

注意:

① 在创建文件夹的时候,取名不要留空格 如: (Mac OS),进入这个文件夹的指令如:cd Mac\ OS

② 连续编译:cc -c 文件名1.c 文件名2.c 文件名3.c

③ 编译:只会检测语法是否正确,并不会检测有没有main函数

④ 链接:会检测有没有main函数


(七)、关键字

关键字是C语言提供的有特殊含义的符号,也叫做“保留字”。

特征:

① 全部是小写

② 有特殊的颜色

(八)、标识符

标识符就是在程序中自定义的一些符号和名称,要跟关键字区分。关键字是C语言默认提供的符号,标识符是程序员自定义的


1、 命名规则:只能由26个英文字母的大小写、10个阿拉伯数字0-9、下划线

严格区分大小写 比如:test 和Test是两个不同的标识符

不能以数字开头

不能使用关键字作为标识符

2、命名规范:尽量起个有意义的名称

如果标识符中含有多个单词,可以使用驼峰标识(除开第一个单词,后面每个单词的首字母都大写)、可以使用帕斯卡命名法、或者使用下划线“_”来连接

        (九)、注释

注释分为:单行注释(//)和多行注释(/**/)
使用注意:
① 单行注释可以嵌套单行注释、多好注释
② 多行注释可以嵌套单行注释
③ 多行注释不能嵌套多行注释

(十)、数据

黑马程序员-IOS基础之C语言基础语法

十一)、变量在代码块中的作用域
① 变量的作用域:从定义变量的那一行代码的开始,一直到所在的代码块结束
② 代码块的作用:及时收回不再使用的变量

变量值得互换 a <--------> b
方案①:
temp = a;
a = b;
b = temp;
方案②:
a = b - a;
b = b - a;
a = b + a;
方案③:
a = a ^ b;
b = a ^ b;
a = a ^ b;

(十二)、变量的内存分析
内存以“字节位单位”、字节是有地址的,相邻的字节地址是连续的
黑马程序员-IOS基础之C语言基础语法
//&是一个地址运算符,取得变量的地址
//%p用来输出地址
总结:
1、内存寻址由大到小,优先分配内存地址比较大的字节
2、变量越先定义,内存地址就越大
3、取变量的地址:&变量名
4、输出变量地址:%p
5、一个变量一定先要初始化才能使用