课本
第一个程序(c程序结构)
c程序结构:预处理指令,函数, 变量, 语句/表达式 ,注释
#include <stdio.h>
int main()
{
printf("Hello, World! \n");
return 0;
}
1.
<> 表示系统自带的库
也可以写成" " 表示用户自定义的库
如果写成" "并且自定义的库里面没有这个文件,系统会自动查找自带的库,如果还是没有则报错
2.stdio.h表示一个头文件(即标准输入输出头文件)
3.#include 是一个预处理命令,用来引入头文件,告诉预处理器将指定头文件的内容插入到预处理器命令的相应位
4.main()主函数 表示程序的入口 一个程序有且只能有一个main函数的存在
main(int argc, char *argv[]) 存疑???(D)
基本语法
多行注释方法
/* */ 这种格式的注释可以单行或多行。
不能在注释内嵌套注释(嵌套使用时只有内层有效),注释也不能出现在字符串或字符值中。
但注释若出现在引号内,则仍认为是字符串
五个令牌 :关键字、标识符、常量、字符串值,或者是一个符号(以分号为例)
标识符:就是程序员自己起的名字,除了变量名,还包括函数名、宏名、结构体名等
一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)
标识符区分字母大小写,且标识符中不能出现标点字符
对标识符要做到见名知意
关键字:C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。
数据类型
数据类型决定数据的种类,不同种类的数据对应着不同的用法
包括:基本类型;枚举类型;void类型;派生类型
基本类型:整数类型和浮点型
- 内存中,一个字节对应8个二进位
- 电脑系统的位数(32或64)即为二进位的位数
- char表示字符,其实仍为整数型;由此想到数据结构中定义顺序型串的结构时,字符串数组的最大长度char[0]='255’的理解
- 用sizeof(类型名) 运算符可以求相应类型占用的字节数
浮点类型
- 精度表示的是小数点后的有效数字的位数,即相当于保留几位有效数字
- 1.2E-38或1.2e-38表示1.2乘以10的(-38)次幂
- 浮点型常量表示用一般十进制或者指数型十进制都是合法的
- 浮点型数据的范围为是如何求的?(D)
- 浮点型不能包括所有的小数?未在范围内的小数的表示?(D)
浮点型与整数型的转换:
自动转换:若一个表达式中含有不同类型的常量和变量,在计算时,会将它们自动转换为同一种类型
转换规则:
1、浮点数赋给整型,该浮点数小数被舍去;
2、整数赋给浮点型,数值不变,但是被存储到相应的浮点型变量中;
强制转换:(类型说明符)(表达式),示例:
b=(int)(x+y);
void类型:可表示函数的参数,函数的返回或者指针的指向为空
枚举类型:在定义时只能赋予离散整型数值
派生类型:数组类型,结构类型,函数类型,共用体类型,指针类型
变量
变量就是程序可操作的存储区的名称(仔细理解这句话),类型决定变量存储
基本变量类型:(其他类型也有相应类型的变量类型)
变量的定义与声明:
extern int a;//只声明,不定义
int a;//既是声明又是定义
- 声明不建立空间,定义建立空间
- 在变量定义时可以直接初始化
- 一个程序中,一个变量的声明可以有多次,但定义只有一次
- 静态持续变量指全局变量或声明为static的变量??(D)
- 全局变量和局部变量在内存中的区别??(D)
左值与右值:
左值:指向内存位置,可以在赋值号两侧
右值:表示内存位置的具体数值,只能在复制号右侧
int a,b;
a=b=3;
a=(b=3);
//两条语句都会返回a=3
//若a时bool型,则会返回a=1;说明()的返回结果会根据左值的类型做出相应的改变
1.6号之前的(中间懒了几天没学)
1.7
感觉之前学的太慢太细了,决定学快些,不深究太多(着眼于更实用的东西)
常量
常量的几种类别:整数常量,浮点常量,字符常量,字符串常量
转义序列中一些序列的功能有待进一步研究(D)
定义常量:
#define 预处理器定义(注意边缘效应)
const关键字定义(必须在一条语句内完成对常量的定义)
const int var=5;//分开写则不对
存储类
存储类定义 C 程序中变量/函数的范围和生命周期(仔细理解这一句话)
生命周期有待进一步理解(D)
auto是局部变量默认的存储类
//在一个函数中,该两种定义方式是一样的
{
int var;
auto int var;
}
register存储类用于定义在寄存器中的局部变量(即其没有内存位置)
寄存器有待进一步理解(D)
static是全局变量默认的存储类,表示使用范围在该文件中;当用来定义局部变量时,可使该变量在函数被调用时不会再被创建或销毁,即该局部变量只会被初始化一次
extern提供对于全局变量的引用(即声明),使其在定义后可用于多个不同文件中