C语言知识点:
1.字符(char)型数据在微机内存中的存储形式是ASCII码。
2.设int a=12,则执行完语句a+=a-=a*a后,a的值为-264,解释:a*a=144,a-=a*a的值为-132,同时,a重新赋值为-132,故a+=a-=a*a的值为-264。注:a+=x与a-=x均会将a重新赋值
3.printf("%d\n",a=5); //此时输出5,顺序为先给a赋值为5,再输出a
4.0的ASCII值为48,0~9以此类推,A的ASCII值为65,a为97
5.枚举类型是C语言中非空的数据类型
6.scanf("%3c",&ch); //%3c表示输入三个字符 printf("%c",ch) 表示输出一个字符
7.二维数组中的第二维不可省略,可以像 int a[][3]这样命名二维数组,但是,不可以像 int a[3][] 这样去命名二维数组
8.为了避免嵌套的if-else语句的二义性,C语言规定else总是与在其之前的尚未配对的最近的if进行配对
9.对于for(表达式1; ;表达式3),可以理解为for(表达式1;1;表达式3)
10.C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个必须为字母或下划线,同时,变量名不能与C语言关键字重复,比如,我不能命名一个变量为scanf
11.<CR>是换行符的意思
12.如下,这里的x=z=y是赋值运算符,不是逻辑运算符,所以x=3是会执行的
if(x=z=y)
x=3;
13.因为switch语句中没有break,所以会执行完case1后,继续执行case2,此时就体现了break的重要性
switch(x)
{
case 0:
b++;
case 1:
a++;
case 2:
a++;
b++;
}
14.break可以在循环和开关语句中使用,continue只能在循环语句中使用
15.此时,a<=100是一个逻辑判断语句,在C语言中,该语句的值只能为0或1,所以,输出的值只能为0或1
printf("%d",a<=100)
16.设有数组定义:char array[ ]="China";则数组的存储空间占6个字节(存放字符串时,是以'C','h','i','n','a','\0'来存储的,\0作为字符存储内存空间结束的标志,\0占一个字节,所以,有效字节为5个字节,但是占用6个字节的内存)
17.C语言中,函数的定义不能嵌套,不能在一个函数中再次定义一个函数,但函数的调用可以嵌套,例如:递归函数
18.C语言中,若没有声明数据的类型,则系统默认的该函数的类型为int型
19.C语言中,凡未指定的存储类别的局部变量的隐含存储类别是auto
20.C语言中,全局变量的存储类型为static
21.程序的三种基本结构为顺序,选择和循环
22.一个算法应具有的特点是:有穷性,确定性,有零个或多个输入,有一个或多个输入,有效性
23.在三种循环中,当条件表达式的值为0时,就结束循环
24.按变量地址访问变量的方法叫直接访问,通过存放变量地址的变量(指针)去访问变量的方法叫作间接访问
25.文件包含的一般形式为#include <文件名>
26.宏定义中的宏名一般用大写字母表示,容易做到一改全改
27.结构体是一种构造数据类型,用途是把不同类型的数据组合成一个整体
28.位运算的运算对象只能是整形或字符型数据,而不可以是其他数据类型的数据
29.文件是存储在外部介质上数据的集合,是操作系统数据管理的单位
30.C语言本身是不能输入输出的,其输入输出的是stdio.h函数