一、带你认识c语言
c语言,一门关于编程的高级语言。是许多程序员的“母语”。1972年,贝尔实验室里的丹尼斯里奇和肯汤普逊在开发unix操作系统时设计了c语言。经过了漫长岁月,c语言经历了许多考验,直到今天都可以畅快使用。他有几个特性:设计特性,高效性,可移植性,强大而灵活,面向程序员。这些都是他的优点。缺点是关于指针的使用还有大量运算符的叠加会让代码晦涩难懂。这个缺点甚至造就了国际c语言混淆代码大赛。
接下来是使用c语言的7个步骤
1.定义程序与目标
2.设计程序
3.编写代码
4.编译
5.运行程序
6.测试和调试程序
7.维护和修改代码
举个例子:
我们拿最著名的例子来让你明白c语言程序是怎么运行的吧。
“Hello, world"程序是指在计算机屏幕上输出“Hello world”这行字符串的计算机程序,“Hello World”的中文意思是“你好,世界。”。这个例程在 Brian Kernighan 和 Dennis M. Ritchie合著的The C Programme Language使用而广泛流行。因为它的简洁,实用,并包含了一个该版本的C程序首次在1974年 Brian Kernighan 所撰写的 Programming in C: A Tutorial 出现。总而言之就是这个程序非常具有开创意义,是一个很有代表性的程序。关于这个程序里包含了几个东西,首先是第一行的#include<iostream>,这里的iostream是指iostream库。iostream的意思是输入输出流,直接点说就是in(输入) out(输出) stream(流),取in、out的首字母与stream合成。中文名叫做输入输出流。iostream 库的基础是两种命名为 istream 和 ostream 的类型,分别表示输入流和输出流。流是指要从某种 IO 设备上读出或写入的字符序列。术语“流”试图说明字符是随着时间顺序生成或消耗的。这里看不懂可以忽略,举个例子吧,一般输入设备就例如你的鼠标,键盘,输出设备就如电脑显示屏。另一个#include<stdio.h>,其中的这个stdio.h指的是头文件,这个头文件我们是可以自己写的哦,具体涉及到的话会在文件那个部分。stdio 就是指 “standard input & output(标准输入输出)我们下面用到的printf函数就包含在这个头文件里,也就是说如果我们没有调用stdio.h这个头文件的话,我们是不能用printf这个函数的。stdio.h里包含的函数有:
文件访问(常用)
fopen
freopen
fflush
fclose
二进制输入/输出
fread
fwrite
非格式化输入/输出(常用)
fgetc/getc
fputc/putc
ungetc
fgets
fputs
格式化输入/输出(常用)
scanf/fscanf/sscanf
printf/fprintf/sprintf
perror
文件定位
ftell
fseek
fgetpos
fsetpos
rewind
错误处理
feof
ferror
文件操作
remove
rename
tmpfile
main函数是程序的主程序,里面可以塞进任何有用可行的其他函数,可以理解为一个操作台,他里面的逻辑顺序和你的代码实现成功率息息相关。关于这个代码是怎么执行成功的,这里有一个流程图:
return 0;这个指令目前你不用管,在以后的学习中你自然的就会知道它的作用了。
二、c语言的基本语法
1.变量与常量
我们知道,程序需要使用数据,即承载信息的字符和数字。有些数据在程序使用之前就已经预先设计好了,在整个运行过程中没有发生变化,这些称为常量。其他数据在程序执行过程中可能会改变或者赋值,这些称为变量。例如:
这里面的a我们可以成为常量,b那么就可以称作变量了。b=a;这个操作是将a的值赋给b,这样的话,b的值就发生了改变,变成了1。如果我们不给b赋上这个值呢,那么程序就会发生错误。具体情况如下:
即使用了未初始化的局部变量“b"。
2.数据:数据类型关键字
这些关键字创建的类型,按计算机的存储方式可分为两大类型:整数类型和浮点数类型
附:位、字节和字
最小的存储单元是位(bit),可以存储0或1。
字节(byte)是常用的计算机存储单位。对于几乎所有的机器1字节等于8位。一个字节就会有256种可能。
字(word):根据计算机的不同而不同,总之,字长越长,数据转移得就越快,允许的内存访问就越多。
2.1 整数和浮点数
整数:没有小数部分的数,用0 1存储
浮点数:计算机把浮点数分为小数部分和指数部分来表示。
3.c语言基本数据类型
3.1 int类型
1.声明int变量
int a;就算声明int变量
2.初始化变量
初始化就是为变量赋初值,可以参考上边b的错误
3.int类型常量
4.打印int值
除此之外,还有short int,long int,long long int,unsigned int.
溢出:当值太大时,就会发生溢出,int是从-2147483648开始,unsigned int则是从0开始。
3.2 char类型
和int差不多,就是变成了存储字符的一个变量名,编码方式大多是阿斯克码。一些拓展建议自行查阅,我在这不过多叙述。
3.3 float、double和long double
这是存储浮点数的变量名,精度高,运算慢
上溢和下溢:
一种特殊情况。