C语言的结构
由函数组成:一个主函数,N个其它函数.
注意:
• 1.主函数是程序的入口,有且只有一个有一个.
• 2.其它函数只有调用才会执行.
格式与规范
标点符号和空格必须使用英文格式
严格遵循书写格式
编译和执行注意一定要确保所要操作的文件在当前目录下,否则要输入全路径
警告可以忽略,错误不可以
C语言的语法
注释:对代码的解释说明;辅助调试.
• 分为:
o 单行注释
o 多行注释
• 写法:
o 在一行代码中,注释只能写在后面
• 注意:
o 多行注释不能嵌套多行注释
关键字:c语言中的保留字;共有32个
• 作用:
o 实现某种功能.如sizeof
o 表示.如int
标示符:起名字.由字母,数字,下划线和美元符号做成
• 用法:
o 给函数起名
o 给变量起名
• 注意:
o 不能以数字开头
o 不能与关键字重名
o 区分大小写
o 有意义
o 便于识别
• 驼峰命名法:如果标示符由多个单词组成,首个单词首字母建议小写,其后每个单词首字母大写
数据:数字,字母,图像,音频,视频等等都是数据.
• 分为:
o 静态数据.一经存储,不会消失
o 动态数据:数据加载到内存中,断电就会消失,
• 特点:
o 以01010的二进制数存储于计算机中
o 一个二进制位称作bit
o 8个二进制位为1字节,Byte.
数据类型:对数据的区分
• 分为:
o 基本数据类型
• 数值类型
整型
• 短整型 short
• 整型 int
• 长整形 long
浮点型
• 单精度 float:有效数字7位
• 双精度 double:有效数字15位
• 字符类型 char
o 构造
• 数组
• 结构体 struct
• 共用体 union
• 枚举 enum
o 指针
o 空 void
常量:
• 分为:
o 整型.如:1
o 浮点型.如1.1
o 字符型.如’a’(只能是仅仅一个非中文字符)
o 字符串型.如”ab”
• 用法:
o 字面常量
o 符号常量:
• 用标示符来指明一个常量,通常用const来指明;如:cons int MAX=10;
• 通过宏定义进行定义.如:#define MAX 10
变量:用于存放计算结果的空间
• 用于:
o 赋值
o 修改
• 格式:变量类型 变量名.如: int a;
• 特点:
o 同一作用域不能有相同变量名
o 从定义始,在函数作用于执行完失效,只在当前作用域有效
• 作用域:离变量最近的两个大括号之间.
• 注意:
o 不同作用域变量可以同名
o 作用域可以无限嵌套
变量的内存分析
• 基本单位:Byte
• 每一块内存有一个地址.相当于名字
• 打印不同类型一个变量在内存中占用空间:如:printf(“int类型一个变量在当前运行环境中占用空间%lu\n”,sizeof(int));
o lu:long unsigned; long unsigned int无符号长整形;表示正整数;
o 有符号的长整形包括所有整数,可以与互相转换.可以用%d打印sizeof计算的结果,但是会报警告,编译器建议使用%lu
• sizeof是一个单目运算符,用于计算当前运行环境占用内存字节数
• 地址的分配:如:int a;int b;按定义先后从大到小分配;a的地址大于b.其中在分配给a的所有内存块中,地址最小的为a的地址
• 打印变量的地址:如:int a;printf(“a的地址是:%p\n”,&a);
• 变量没有赋值之前使用没有意义
输入\输出函数
• 输出函数:
o 格式:printf(“格式控制符”,变量名);
o 不同数据类型对应的格式控制符:
• 整型--%d
• 浮点型--%f
控制小数点后面的位数--%.mf(m是要打印的位数)
• 字符型--%c
• 地址--%p
• 字符串--%s
• 输入函数:
o 格式:sacnf(“格式控制字符”,变量地址);
o 注意:
• 不同数据类型对应的格式控制符同输出函数一样,
• 变量地址:&变量名
• 引号中不能有换行符
• 在控制台的输入格式严格遵守引号中定义的方式.如:”%d,%d”,控制台输入数字也要严格用逗号分隔.
• 两函数都是库函数,使用前需要声明头文件:#include <stdio.h>
• 可以批量输入或输出
C语言中的基本运算
算术运算:+ - * / %(取余)
• 特点:
o 不同类型数据精度不同,需注意以下几点
• double>float>int
• 高精度向低精度转换会损失精度
• 低精度向高精度转换会提高精度
• 使用强制转换可以使高精度向低精度转换不损失精度.方式:如:int a=(int)1.8.在要提升精度的数据前加括号,括号中输入目标数据类型.
• 不同精度数据间运算,低精度自动向高精度提升
• 同精度运算结果精度不变,要提升精度使用强转
o 不同运算符之间优先级不同,情况如下:
• *=/=%>+=-,通过加括号改变优先顺序
• 注意:
• 取余运算,如a%b,编译器会认为%是格式控制符,导致返回警告,因此取余运算应当这样写:a%%b
• 取余运算只能在整数间进行.小数是不可以的
赋值及自增自减运算:= += -= ++ --
• 含义:
o =; int a=1;
o +=;a+=2等价于a=a+2;
o -=;a-=2等价于a=a-2;
o ++;
• a++等价于a=a+1;
• ++a和a++本身没什么区别,只有当这个整体参与其他运算是才有差别;a++,先参与别的运算,再自增;++a,先自增,再参与别的运算
• 例:int a=1;b=a++;读完这两句后,a=2;b=1;int a=1 b=++a;读完这两句后,a=2,b=2
o --;a—等价于a=a-1;
sizeof:
• N目运算符
o 单目运算符:如:b=a++;等号右侧只有一部分参加运算
o 双目运算符:如:c=1+1;+有两部分参加运算
o 三目运算符
• 用法:
o 直接计算常量占用的字节数如sizeof 2
o 直接计算变量占用字节数如sizeof a
o 计算不同数据类型占用字节数如sizeof(int)
o sizeof 后直接接字符 sizeof( ‘a’)自动将’a’转换成ASCII表对应数值,也就是int型,相当于sizeof(int),返回4
o char c=’a’;sizeof(c),返回1.该点同上一条的区别:这里定义了变量字符型变量c,初始化为’a’,而字符型变量在64为运行环境中是1
• 注意:
o sizeof后面什么时候要括号,什么时候不要?
• 计算数据类型时候一定要,计算变量或常量时可要可不要 |
|