1.程序开发的步骤
定义程序的目标→设计程序→编写代码(需要选择语言,一种语言对应一种编译器)→编译→运行程序→测试和调试程序→维护和修改程序
2.ANSI/ISO C标准
1989年ANSI批准通过,1990年ISO批准通过,因此被称为C89或C90。
1994年,C9X委员会发布C99标准,新增以下目标
①支持国际化编程②调整现有实践致力于解决明显的缺陷③为适应科学和工程项目中的关键数值计算,提高C的适应性,让C比FORTRAN更有竞争力
3.用二进制存储的原因
①二进制在电气元件中容易实现,双稳态元件很多
②二进制运算比十进制运算简单的多
③二进制易于实现物理上对数据的存储(eg:光盘)
4.负数存储
以二进制补码形式存储
取反:原码中的符号位不变,之后的数全部取反(1改成0,0改成1)
加一:反码加一(eg:最后一位是0,直接加1变成1)
取反再加一后得到的就是补码
在存储中,减法是加上补码
5.内存的特点:速度快,可随机访问,但掉电即失
6.计算机的内存地址按字节(Byte)编址
7.可寻址的最小单元--字节
衡量内存容量的最小单位--位
8.C语言中的数据类型
①基本数据类型:
int :整型,用于存储整数。
float :浮点型,用于存储小数。
double :双精度浮点型,比 float 有更高的精度。
char :字符型,用于存储单个字符。
void :无类型,用于函数声明中表示函数不返回任何值。
②枚举类型( enum ):
用户自定义的类型,用于定义一组命名的整型常量。
③结构体类型( struct ):
用户自定义的复合数据类型,可以包含不同类型的数据项。
④联合体类型( union ):
与结构体类似,但联合体中所有成员共享同一块内存空间。
⑤数组类型:
可以存储多个相同类型的数据项。
⑥ 指针类型:
用于存储变量的内存地址。
⑦函数类型:
可以定义函数指针,指向函数的指针。
⑧类型定义( typedef ):
允许用户为现有的数据类型定义一个新的类型名。
⑨布尔类型( _Bool ):
在C99标准中引入,用于逻辑值的存储。
这些是C语言中的主要数据类型,它们可以组合使用,以满足不同的编程需求。
9.字符在计算机中用ASCII码进行存储
a→97
A→65
ASCII取值只能在0-127
10.标识符命名规则
在C语言中,标识符(包括变量名、函数名、数组名、结构体名等)的命名遵循以下规则:
①首字符:
标识符的第一个字符必须是字母(大写或小写)或下划线(_)。
②后续字符:
标识符的后续字符可以是字母、数字(0-9)或下划线。
③大小写敏感:
C语言是大小写敏感的,这意味着 Variable 和 variable 被视为两个不同的标识符。
④关键字和保留字:
不能使用C语言的关键字和保留字作为标识符。例如,不能使用 int 、 float 、 if 、 while 等作为标识符。
⑤数字开头:
标识符不能以数字开头,否则会导致编译错误。
⑥长度限制:
标识符的长度通常有限制,虽然不同编译器可能有不同的最大长度限制,但建议不要超过31个字符。
⑦ 可读性:
尽管标识符的命名规则允许使用各种字符组合,但为了代码的可读性和维护性,建议使用有意义的、描述性的名称。
⑧命名约定:
通常有几种常见的命名约定,例如:
✮驼峰命名法(camelCase):首单词字母小写,后续单词首字母大写,如 myVariableName 。
✮帕斯卡命名法(PascalCase):每个单词的首字母都大写,如 MyVariableName 。
✮下划线命名法(snake_case):所有单词以小写字母书写,单词之间用下划线分隔,如 my_variable_name 。
✮匈牙利命名法:在变量名前加上表示类型的前缀,如 iCount 表示整型变量。
11.
★变量必须先声明后使用
★一条声明语句可声明若干个同类型变量(eg:int a,b,c;)
★声明顺序无关紧要
12.赋值①变量的初始化:在定义变量时为变量赋值②赋值表达式:定义完变量后再为变量赋值
Q:未被初始化的变量的值是什么?
A:随机数(乱码)
13.如何变量赋值
变量=表达式
变量1=变量2=变量3
变量1=(变量2=表达式)
14.变量的类型决定了什么
①内存分配:
变量的类型决定了为该变量分配的内存大小。例如, int 类型通常占用4个字节的内存空间,而 char 类型通常占用1个字节。
②存储值的范围:
变量的类型定义了它可以存储的值的范围。例如, int 类型可以存储的整数范围通常在 -2,147,483,648 到 2,147,483,647 之间(具体范围取决于系统的位数),而 float 类型可以存储大约6到7位有效数字的浮点数。
③数据表示:
变量的类型决定了数据在内存中的表示方式。例如,整数类型通常以二进制形式存储,而浮点数则遵循IEEE 754标准。
④运算符的适用性:
变量的类型决定了哪些运算符可以应用于该变量。例如,加法运算符 + 可以用于整数和浮点数,但不能用于字符串。
⑤类型转换:
在表达式中混合使用不同类型的变量时,会发生隐式类型转换,这可能会影响计算结果的精度和范围。
⑥函数参数和返回值:
函数参数和返回值的类型决定了函数可以接收和返回的数据类型。
⑦内存对齐:
某些类型的变量(如结构体中的成员)可能需要按照特定的边界对齐,以提高访问效率。
⑧指针操作:
指针变量的类型决定了它指向的内存块的大小,以及通过指针可以访问的数据类型。
⑨数组和循环:
数组的类型决定了数组中每个元素的类型,循环变量的类型决定了循环计数的上限。
⑩可移植性:
不同的编译器和平台可能对同一类型的变量有不同的实现,但变量的类型确保了程序的可移植性。