-
计算机语言分类
1> 机器语言(机器指令)
2> 汇编语言
3> 高级语言(Basic、C语言、Java、C++、C#/.net、OC、VB、PHP等)
-
C语系和C语言关系、强类型语言
C语系--由C语言演变而来的语言;比如C++、Java等。
C语言--主要用于底层开发,因此C语言也被称为 中级语言。
强类型语言--就是变量在使用之前必须显式声明类型,声明类型只需要声明一次即可;使用时不能带类型。
-
编写C语言程序步骤(在GNU/Linux下):
1> 用Vi/Vim编辑器编辑xx.c
2> 保存退出后,使用gcc xx.c进行编译链接。
3> 使用./a.out运行(如果在PATH环境变量中配置了. 就可直接使用a.out)
-
C程序结构
#include <stdio.h>
//第一个C语言程序,并测试包含文件
int main()
{
#include "s.c"
printf("hello c\n");
return 0;
}在xx.c中,一般由三部分组成
1> #开头的叫做指令,常见的有 #include #define #if 等。
#include 作用是包含一个文件,一般会包含 /usr/include/下的头文件(.h)。
2> int main(){}叫函数,main是主函数,程序的入口点;函数 由 返回类型、函数名、参数列表(多个参数用,隔开) 组成;{}叫函数体。
3> 函数{}中的内容叫 语句,语句 以 ; 结束。
-
C程序原理
1> 编写源程序(xx.c)
2> 预处理 所有指令。
3> 编译程序,生成 .o/.obj文件。
4> 链接程序,把库函数等外部资源和 .o文件进行链接,生成a.out文件。
5> 加载a.out文件从硬盘到内存;运行a.out程序。
其中2、3、4步骤都是依赖gcc编译器,gcc可以直接当命令使用:
-
gcc常用选项
-c 只编译(compile/compiling)不链接
-o 目标文件名 修改目标(object)文件名为指定名字(默认为a.out)
-std=c89/c99 设置c89/c99标准(默认是c89标准编译链接)
-Wall 显示所有的警告(All Wall)信息(警告不影响程序的编译和运行)
-E 仅做预处理(Pre-Processing)
-S 生成汇编(Assembly)文件
……
-
#include "xx" #include <xx> 的区别:
""是先在当前目录(.)找,再去系统目录, <>只去系统目录(/uer/include/)找。#include 前不能有非空白字符。
-
C语言的注释
注释是程序员之间沟通的方式,注释不参与程序的编译、链接和运行。
1> 单行注释 //开始到本行结束
2> 多行注释 /*开始 */结束 中间可以有任意多个字符和任意多行
注意:多行注释不能嵌套。
-
C语言编码规范:
1> 语句可以分开放在多行
2> 空格能更好的区分代码
3> 缩进能更好的区分层次关系,一般缩进2-4个空格
4> 空行能更好的区分代码模块
5> 变量、函数的名字要有实际意义,采用驼峰命名法或下划线命名法区分多个单词。
-
变量
1> 变量
其实就是 内存的一个区域,变量名 对应 内存区域。变量在使用之前必须要 声明类型,类型 就是变量的种类,可以确定变量占用内存区域的大小。
2> 类型
主要包括:char字符/int整型/float单精度浮点/double双精度浮点/结构/联合/枚举/指针。
3> 变量的声明
就是定义一个变量和变量的类型,格式如下:
类型 变量名 [=初始值];
int a; int a = 10; int a, b = 5, c;
变量的第一次赋值叫初始化;变量不进行初始化,其值 不确定。
#include <stdio.h>//简单测试变量的使用int main(){ int a = 10,b; float f1 = 1.0f; a = 20; printf("a=%d\n",a);//%d代表整型变量 printf("f1=%f\n",f1);//%f float变量 printf("b=%d\n",b);//b的值不确定 return 0;}
-
标识符
给变量、函数、宏等实体 命名的叫标识符,准则:
1> 标识符必须字母、数字、下划线组成,其中 数字不能是第一个
2> 区分大小写
3> 长度无限制,但编译器在编译时会 截断。
4> 不能和 C语言的关键字发生冲突。
关键字其实 就是 C语言自身已经 使用的特殊单词,有特殊含义,不能被程序员做 标识符。常见的:int char float double return if else switch case default for while do break continue goto……
-
标准输入函数和标准输出函数
1.标准输入:printf()
printf() 可以打印 0-n个变量(参数数量可变)
printf(格式字符串,变量或者表达式1,2,3,4,...)
格式字符串可以由 两部分组成:普通字符串 和 转换格式(%d)
转换格式:
% - 0 m.n l/h 格式字符
% 转换格式开始字符
- 左对齐 省略就是右对齐(了解)
0 空位补0 ,省略 空位不补(了解)
m.n m 域宽 (宽度) n 精度 浮点数 小数点后面的位数(了解)
l/h l 整数 long lf 代表 double
h 整数 short (少使用)
格式字符:
i/d 十进制的整数
c 字符
s 字符串
f 浮点(float,如果double需要加l)
g 浮点(去掉后面的0)
p 地址
x 十六进制整数
o 八进制整数
u 无符号整数
2> scanf()
scanf可以从键盘输入0-n个值,存到对应的变量中。
scanf(格式字符串,变量的内存地址列表) 0-n个变量都可以
int i; &i 取变量i的内存地址
scanf("%d",&i); //把键盘输入的一个整数存在i
scanf 中的格式字符串与printf 基本一致。
scanf 从前向后 逐一 验证输入,到不符合格式就返回,并把前面符合格式的存入变量。
#include <stdio.h>//输入输出测试int main(){ int i; printf("请输入一个整数\n"); scanf("%d",&i); printf("i=%d\n",i); return 0;}
3> 常用类型的表示:
整型变量: %d
字符型变量:%c
浮点double变量:%lf
字符串变量:%s
指针变量: %p
如果类型表示不正确的话,显示结果 可能 错误。
如果在 格式字符串中有%的话,需要用 %%表示。
本文出自 “雪狼” 博客,请务必保留此出处http://wolfzhxp.blog.51cto.com/2409990/1284793