C语言基础(连载中)

C语言的特点:

  • 1.C语言是一种结构化语言
  • 2.C语言语言简洁、紧凑,使用方便、灵活

C语言只有37个关键字

分类占比
数据类型关键字12个
控制语句关键字12个
存储类型关键字4个
其他类型关键字9个

C语言是一种中级语言,易于移植,既具有高级语言的通用性及易写易读的特点,又具有汇编语言的"位处理"、"地址操作"等能力,允许直接访问无力物理地址,能进行位运算操作,能实现汇编语言的大部分功能!

C语言程序结构

第一个C语言程序

#include <stdio.h> //文件包含,预处理命令

void main(){
  /*程序从函数main开始执行 

	在屏幕上输出引号内容 */ 
	printf("Hello,world!");
} 

main表示主函数,void为函数类型,每个程序必须有且只能有一个main函数!!,函数体(功能语句)放在{}中。

#include <stdio.h>:表示明程序中用到C语言系统提供的标准功能。

printf是C语言的输出函数,/**/为注释,增加程序可读性。

一般情况下,C语言程序由5部分组合而成:

  • 1.文件包含部分(预处理部分)
  • 2.变量说明部分
  • 3.函数原型声明部分
  • 4.主函数部分
  • 5.自定义函数部分

不是每一个C语言程序都包含上面的5个部分,最简单的C语言程序可以只有文件包含和主体部分

程序结构说明 !重点

1.C语言程序可以由多个函数构成,但是只能有一个main函数,程序从main函数开始执行,然后通过函数调用完成部分功能,最后在main函数结束。

2.main函数位置任意,函数时C程序的基本单位

3.被调用的函数可以是系统提供的库函数,也可以是用户自己编制设计的函数,因为这种特点使得很容易实现程序的模块化。

函数的组成

一个函数由两部分组成:

函数说明部分函数体
包括函数类型、函数名,形式参数类型、函数参数(形参)名即函数说明部分下面{}中的部分,如果一个函数内有多个大括弧,则最外面的一对{}为函数体的范围
 int        max        (int  x , int  y)
函数类型   函数名     形参类型(int) 函数参数(x,y) 

函数体一般包括:

  • 1.变量定义(声明),如:int a,b,c;
  • 2.执行部分

在某些情况下也可以没有变量定义部分,如:第一个C语言程序。甚至既无变量定义也无执行部分,如:

temp()
  {     }

他是一个空函数,什么也不干,但这是合法的。

每一条语句由分号结束

书写格式自由,一行可以写多句,一句可以写多行,但是注意不要将字符串整体分开!!

大小写敏感,大小写不能混用,一般程序语句用小写字母,符号常量用大写

C语言本身没有输入输出语句,输入输出的操作是由库函数scanf和printf等函数来完成的,C语言对输入输出实行函数化。

C语言程序的执行

1.C语言程序主要通过编译、链接后生成可加载模块(执行文件),才能在计算机上运行。

2.完整的程序生成过程:

源代码
编译器
目标程序
连接器
载入模块
加载
执行程序

3.程序开发的具体步骤:

  • 1.编译源程序。将C语言源程序用一个后缀为.c的文件保存。如:myfile.c
  • 2.编译。检查源程序中的语法错误,生成目标代码文件(.obj)。如myfile.obj
  • 3.链接。将多个目标程序(包含C语言函数库)链接到一个程序中,,生成可执行文件。如:myfile.exe
  • 4.运行可执行文件,验证程序正确性。

C语言基本数据类型、运算符和表达式

C语言的数据类型:

在这里插入图片描述
不同类型的数据在内存中占用的字节数是不同的,数据类型的长度和取值范围会随着机器的CPU类型和编译器的不同而不同。
在这里插入图片描述

无符号的整数指不带符号的整数,即零或正整数

储存有符号的整数时,储存单元的最高位是符号位,其余各位表示数值,储存无符号的整数时,储存单元的全部用于表示数值

标识符

  • 1.所使用的字符:字母、数字、下划线。
  • 2.标识符只能由字母数字下划线组成,且第一个字符必须为字母或下划线

关键字

  • 1.C语言中选用变量名、函数名等标识符时,不能与关键字发生冲突。
    在这里插入图片描述

常量和符号常量

整型常量

C语言中整型常量有八进制、十六进制和十进制三种表示形式。

十进制(默认方式):可以包含0~9的数字及表示负数的"-" 号和表示正号的"+"号。

例如: 100    -8     0    +123

八进制:以0开头(前缀),可以包含0~7的数字

例如: 010   0100   073

十六进制:以0x0X开头(前缀),可以包含0~9A~Fa~f数字

例如: 0x38   0x10   0X10   0XFF   0x0a

所谓十进制,八进制,十六进制只是整型数值的三种不同书写形式而已

整形常量类型的确认:根据值大小默认类型

整型常量后面加后缀lL,则认为是long int

例如:  123l   0L   432l   0x100l

无符号数也可用后缀表示,整型常数的无符号数的后缀为"U" 或"u"。

实型常量

实型也称为浮点型,实型常量也称为实数或者浮点数,在C语言中,实数只采用十进制。他有两种表示形式:十进制小数形式指数形式

十进制形式:由数码0~9小数点组成,及表示符号的"+" 号和 "-"号。

例如:1.0   1    +12.0    -12.0    0.0

指数形式:由十进制数,加阶码标志"e" 或"E"以及阶码(只能为整数,可以带符号)组成。

其中一般形式为:aEn(a为十进制数,n为十进制数)

例如 :    1e3       1.8e-3         -123E-6        -.1E-3   
分别等于:1*10^3     1.8*10^-3     -123*10^-6      -0.1*10^-3

口诀:e前e后需有数,e后必为整数!

默认情况下,实型常量为双精度类型,在实型常量后加上"F“或”f"作为后缀表示类型为单精度类型。

规范化的指数表示形式:小数点前只有一位非零数字,小数部分占6位,指数部分占4位,共13位。

例如:1.23e-2 %e输出时以规范化形式输出为:1.230000E-002

字符型常量

字符型常量是用单引号括起来的一个字符,字符常量占一个字节的内存空间,存储该字符的ASCLL码值,他有两种形式:可视字符常量、转义字符常量

可视字符常量:单引号括起来的单个可视字符

例如: 'a'   'A'  '+'   '3'   ' '  #注意小写和大写是不同的

转义字符常量:转义字符是一种特殊的字符常量。转义字符已反斜线"\"开头,后面跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的含义。

在这里插入图片描述

字符串常量

字符串常量:是用一对双引号括起来的若干字符序列。

例如: "abc"   "#arer"   "A"   "$"

字符串常量占得内存字节数等于字符串中字符数加一。增加的一个字节中存放字符"\0"(ASCLL码为0),这是字符串结束的标志。

符号常量

用一个标识符代表一个常量,称为符号常量,即标识符形式的常量

例如:  #define PI 3.14

符号常量多用大写,变量用小写

符号常量与变量不同,他的值在其作用域内不能改变,也不能再被赋值

符号常量的好处是:

  • 含义清楚
  • 一改全改

变量

程序运行中其值可以改变的量为常量,存储输入数据,中间结果,最终结果

变量三要素:变量名称,变量的数据类型,变量的值

变量的数据类型决定了他在内存中占据的储存单元个数,在储存单元中存放的数据即为变量的值!

变量的名字是标识符,C语言里面所有的名字都用标识符表示!

变量的基本操作:

  • 将数值存入变量中,称为赋值。
  • 将变量中的值取出,称为取值。

变量特性:喜新厌旧,取之不尽,变量必须先定义后使用!!

注意

  • 在同一个作用域中,不要定义同名变量!!
  • 尽量避免定义与库函数名同名的变量!!

变量的类型及其定义

整型变量

  int x;    //定义x为整型变量,储存单元占2个字节
  unsigned int x,y;  //定义x,y为无符号整形变量,储存单元占2个字节
  unsigned long a,b;  //定义a,b为无符号长整形变量,储存单元占4个字节

整型数据在内存中的存放形式

整数在内存是以补码表示的:

  • 正数的补码和源码相同
  • 负数的补码:将该数的绝对值的二进制形式按位取反再加一

在这里插入图片描述
整型数据溢出

由上表可知某种类型的数据所能表示的数值范围是一定的,当赋值超过该类型所能接受的最大值,将会发生错误,称为溢出!

实型变量

C语言的实型变量分为单精度(float)实型和双精度(double)实型和长双精度(long double型)三种

在这里插入图片描述

实型变量定义

float x,y;   //定义x,y为单精度(储存单元占4个字节),单精度提供7位有效数字
double a,b;  //定义a,b为双精度(储存单元占8个字节),单精度提供16位有效数字

字符型变量

字符型变量用来储存字符常量,即单个字符

字符型变量定义:

char letter,digit;

字符数据在内存中的存储形式及使用方法:

每个字符变量被分配一个字节的空间,因此只能存放一个字符,字符值是以ASCLL码表的形式存放到内存单元中。

在C语言中,整型(大于等于0,小于等于255)与字符型数据可通用,他们通过ASCLL码表进行转换。

变量初始化

C语言中,在定义变量的同时赋值,称为变量的初始化

基本格式:   类型标识符 变量名 = 常量;

例如:

int a,b=1,c=2;  //在定义整型变量b,c的同时赋值
float a=1.0;    //在定义单精度实型变量a的同时赋值
char c='s';     //在定义字符型变量c的同时赋值

注意!!!,在C语言中int a=b=c=1;,这种初始化方式是错误的!!

  • 10
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值