这几天加班,一直加到过完年了,就把这几天学的C语言先总结一下吧,希望有人会回复我一起讨论。
个人认为,C语言中的那些关键字是十分重要的,学C语言,首先要弄明白这些个关键字的意义,用法,至少也要先了解。
一 . C语言关键字(32个)。
auto const default enum extern struct union volatile break case char continue do double else float for goto if int long register return short signed (size of) static switch typedef unsigned void while
二 . 关键字的解读。
在解读之前,大家需要明白,变量是什么,个人简单理解,变量就是一个临时存放数据的单元,也就是一块内存区的内存。然后1字节(byte)是8位(bits),由0x开头的字符串代表16进制,由0b开头的字符串代表2进制。
首先从与数据类型有关的关键字开始。
1. char:声明字符型变量或者函数,提供8位(bits)1字节(byte)内存。比如
char name;
这里面name是一个随便取的名字,其自动存入某区域并对其命名为name,此后name便为该地址中所存储的数据。
2. int:声明整型变量或者函数(这里的整型变量就是是整数的数),提供16位2字节内存。比如
int name;
释义与char类似。
3. long:声明长整型变量或者函数,提供32位4字节内存。比如
long name;
Int和long声明的都是整型变量,其中int的全称其实是(short) int,而long是long (int)。
4. float:声明浮点型变量或者函数,该变量是单精度型,提供32位4字节内存。浮点数就是带有小数点的数。例如
float name;
5. double:声明双精度浮点型变量或者函数,该变量是双精度型,提供64位8字节内存,例如
double name;
这里float与double都表示带有小数点的数,只不过double表示的数小数点后位数多,精度高。
6. signed:表示有符号类型变量或者函数,这里的符号是指正负号,它是配合着char或int来用的,起一个修饰作用。比如
signed char name; //其与char name;意思相同。
signed int name; //其与int name;意思相同。
7. unsigned:表示无符号类型变量或者函数。其用法与signed类似。
8. void:表示函数无返回值或无参数,声明无类型指针。不过我也只会用一个
void main()
然后其后面不需要加一个return 0; //其他的我也不了解,不过好像听学长说过最好不要用void。
9*. register:声明寄存器变量或函数。
10*. stasic:声明静态变量或函数。比如
register char name; //直接将数据存在某个寄存器中,速度比内存快。
static char name; //将数据存在某一个内存空余的单元中。
11*. volatile:说明某变量在程序执行时可被隐含的改变并使其不被改变,结果是不改变,其常用于硬件的定义时。
12*. const:声明只读变量,顾名思义就是只允许被读取的变量,与ROM有关。
13*. enum:声明枚举类型。
14*. extern:声明变量或函数是在其它文件或本文件其它位置定义。
15*. union:声明共用体类型。
16*. struct:声明结构体类型。
(注:编号后带有*号的是本人也不了解其大概用法的关键字)
与程序结构有关的关键字(It's very essential.)。
程序结构包括顺序结构
#include<stdio.h>
int main()
{
int a,b,c;
printf("请输入一个数值赋给a\n");
scanf("%d",&a);
printf("请输入一个数值赋给b\n");
scanf("%d",&b);
c=a+b;
printf("两数值之和为:%d\n",c);
return 0;
}//这种做完上一步再做下一步的程序结构就叫做顺序结构
循环结构
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
for(a;a>5;a--)
{
printf("continue\n");//此语句可判断该程序循环了几次
}
return 0;
}//这种存在循环的部分程序结构叫做循环结构
选择结构(暂时不会编)。
1. if:条件语句。
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a>10)//小括号中是判断条件
{//如果if后小括号里的内容为真就做下面大括号里的事情,只做一次,也可在此括号内再嵌套if
a--;
printf("a=%d\n",a);
}
return 0;
}
2. else:条件语句的否定语句,与if连用。
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a>10)//小括号中是判断条件
{//如果if后小括号里的内容为真就做下面大括号里的事情,只做一次,也可在此括号内再嵌套if
a--;
printf("a=%d\n",a);
}
else//上面的判断条件不成立则执行下面大括号中内容
{
a++;
printf("a=%d\n",a);
}
return 0;
}
3. for:一种循环语句。
#include<stdio.h>
int main()
{
int a,b;
b=0;
scanf("%d",&a);
for(a;a>5;a--)//for(这里是循环的起始条件;这里是跳出该循环的条件;这里是本次循环不满足跳出条件时对起始条件做出的改变内容)
{//大括号内的是某次循环时计算机可以做的事情
b++;
printf("b=%d\ncontinue\n",b);//此语句可判断该程序循环了几次
}
return 0;
}
4. while:循环语句的循环条件。
#include<stdio.h>
int main()
{
while(某条件)
{
当上述条件成立时,做该括号内的事情
}
}
5. do:循环语句的循环体。
#include<stdio.h>
int main()
{
do
{
某件事
}
while(某条件);
}
下面来讲while和do while的区别:
while
该程序至while处无法启动循环,因其不满足循环条件,故输出结果为:
do...while
该程序先进行了一次循环,故输出结果为:
所以二者之间的区别就是一个最少进行0次循环,一个最少进行1次循环。
6. switch:用于开关语句。
7. case:用于开关语句的分支。
8. continue:用于跳出本次循环,开始下一轮新循环。
9. break:用于跳出当前整个循环。
10. default:开关语句中一种分支。
11. goto:一种无条件跳转语句。
12. return:函数的返回语句。
(时间很晚了,明天还要继续加班呢,下次再把与程序结构有关的关键字更上,比较麻烦哟,还得用到例子。不过为什么我总感觉自己寒假的学习方向越来越偏了呢,貌似我注重的东西与别人看的都不一样诶,表示心塞,一脸懵。先不想了,学一点是一点。睡觉觉!)
(睡觉,下次再补!)