c语言一般格式:
#includeint main(){printf("Hello world!!!");return 0;}
说明:有且只有一个主函数
函数首部(函数头) 函数说明
说明函数类型、函数名和函数参数。
函数体
包括变量说明和语句执行部分。
函数调用语句
格式输出函数printf( )。
输出“Hello world!”。
单行注释://
多行注释:/* */
一、c语言概述
1.计算机是如何运行的???
1.1.计算机的组成部分:
硬件: 输入设备(鼠标,键盘等) 输入数据到内存
输出设备(显示器,打印机等) 用于数据的展示 内存储器(临时存储正在处理的数据或程序)
外存储器(硬盘,优盘,SD卡:永久存储)
CPU (控制器&&运算器)
软件: 操作系统,系统软件,应用程序等
1.2.运行原理:软硬件结合,五大部分协调工作。
2.1计算机首先通过输入设备/外存储器,将数据加载到内存中。
2.2 CPU获取到内存的数据,进行处理。
2.3通过输出设备将数据进行展示。
2.4通过外存储器将数据进行永久保存。
1.3.注意事项:计算机只能处理内存中的数据。
2.计算机语言:
2.1机器语言(0,1指令码)计算机唯一可以直接处理的指令
2.2汇编语言(汇编指令)通过汇编程序转化为机器指令
2.3高级语言(C,C++,java...
)通过编译程序转化为机器指令
3. C语言简介
3.1 c语言开发过程:
3.1.1 首先创建一个文件(.c),按照c语言规范书写代码
3.1.2 编译源文件—(生成一个可以被计算机执行的可执行文件)
编译的详细过程:
1.预处理
2.编译
3.汇编
4.链接
3.1.3产生可执行文件,运行可执行文件,确认结果是否正确。
3.2 1.预处理—–gcc hello.c -E > hello.i
3.2.2.编译——-gcc -S hello.i -o hello.s 或者 gcc -S hello.c -o hello.s
3.2.3.汇编——-gcc -c hello.i -o hello.o
3.2.4.链接——-gcc hello.i -o hello
3.3 C语言程序如何编写???
遵循C语言代码编写规范
c语言命名规则:
C语言变量名命名规则主要有三点:
一、命名规则;
二、大小写的使用;
三、变量的命名范围。
1、C语言变量名命名规则:变量名可以由字母、数字、下划线组 成,但不能以数字开头,C语言使用区分大小写,所以变量名区分大小写,不要使用C语言中的关键字和函数名称作为变量名,这样会导致 程序错误。
2、C语言大小写使用,变量名区分大小写,而标识符(函数名, 变量名,常量名)一般使用驼峰命名法,首字母采用小写,后面每个 单词的首字母均大写。
3、C语言变量的命名范围:在不同的作用域,变量的命名是有范围的,即同一个变量,不同的作用域具有不同的命名范围。比如在全局作用域,变量名称全局有效,范围是整个程序;在函数作用域,变量名称仅仅在该函数内有效,范围仅限于该函数。 C语言命名变量需要遵守上述三项规则。不正确又不规范的命名会影响程序运行,多次出现这种情况后程序会出现运行BUG,所以一定要认真加以审视确保变量名规范,程序才能正常运行。
预处理:把所有的东西都展开了(不分析错误,只是展开头文件)(-i)
生成.s之后就会进行语法分析(-s)
汇编(看不懂的语言 -o):
c语言数据类型
1.C语言数据类型:
1.1数据类型的分类: (64位操作系统)
基础数据类型:
数值型:
int————–%d———4字节
short————%d———2字节
long————%ld———8字节
float————%f———4字节
double———–%f———8字节
字符型:char————-%c———1字节
构造类型:结构体 联合体(共用体) 枚举类型
指针类型
空类型:void
注:bool类型的输出只有两种结果:正确和错误
float 类型和0进行比较:应该设法转化成“>=”或“<=”,即: const float EPSINON = 0.00001
代码如下:
1.2 C语言中数据的表现形式:
单引号是字符 双引号是字符串
Ascall码值一个以四个字节存储
1.2.1常量:在程序执行过程中其值不能被改变的量。
整形常量: 可以用十进制(6,7,8),十六进制(0xff), 二进制(110),八进制(0777)
浮点型常量:可以用十进制 3.14f 3.14l
字符常量: 可以用’A’ ‘B’
转义字符常量:\n(换行) \t (隔几个字节)
字符串常量:”hello world” C语言中用” “字符序列
符号常量:
#define PI 3.14
关键字 符号 常量
#define DATA 0666
关键字 符号 常量
一个字节在数据中的存储(有符号):
1.2.1变量:在程序执行过程中其中的值可以被改变的量。(定义变量的目的是开辟空间)
变量的名称可以由数字,字母,下划线组成,必须以字母或下划线开头,大写字母和小写字母是不同的,C语言对大小写是敏感的。
变量的定义:
eg: int a;
数据类型 变量名
type val;
1.3进制间的转化:逢几进一,就叫几进制。
权重 数码
十进制 10 0-9
八进制 8 0-7
二进制 2 0-1
十六进制 16 0-9 A B C D E F
1.4整型数据在内存中如何存放:原码,反码,补码
三种表示方式都包括符号位和数值部分,符号位用0表示”正”,符号位用1表示”负”
原码:直接将数据按照正负数的形式翻译成二进制
反码:符号位不变,数据部分取按位反
补码:反码+1
21—->0001 0101 -21—->1001 0101
21—->0001 0101 -21—->1110 1010
21—->0001 0101 -21—->1110 1011
正数:原码 反码 补码相同
负数:原码 反码 补码不一样
单引号是字符 双引号是字符串
1.5浮点型数据在内存中的存放形式:
1.6各类数值型数据的混合运算:
变量的数据类型是可以互相转化的。
1.自动转化(编译系统)
自动转化规则:若参加运算的类型不同,先转化为同一种类型,然后再进行运算。
转化类型按照数据长度增加的方向,保证数据不丢失。
转化顺序:char,short —>int—>unsigned—>long—>double
2.强制转化
一般形式:
(int)3.1415*r*r (数据类型说明符)(表达式) eg:(float)a; (int)(x+y+z);