本文共 5292 字,大约阅读时间需要 17 分钟。
C语言诞生于美国的贝尔实验室,在B语言的基础之上发展而来。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。
C语言诞生于美国的贝尔实验室,在B语言的基础之上发展而来。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。
C语言兼顾了汇编语言和高级语言的优点,运行效率只比汇编语言代码生成的目标程序效率低10%~20%。因此C语言广泛使用在编写系统软件上。得益于C语言的高效和能够直接和系统资源进行交互,也经常用于编写硬件驱动程序!我们使用的windows系统和unix系统都是C/C++语言编写的!(C++是C的一个扩展)
类型 | 打印格式符 | 字节大小 |
---|---|---|
char | %c | 1 |
unsigned char | %c | 1 |
int | %d | 4 |
unsigned int | %d | 4 |
short | %d | 2 |
unsigned short | %d | 2 |
long | %ld | 8 |
unsigned long | %lu | 8 |
long long | %lld | 8 |
float | %f | 4 |
double | %lf | 8 |
long double | %Lf | 16 |
#includeint main(){ char ch = 'a'; printf("char = %c ,size = %lu\n\n",ch,sizeof(char)); unsigned char unCh = 'b'; printf("unsigned char = %c ,size = %lu\n\n",unCh,sizeof(unsigned char)); int numA = 1; printf("int = %d ,size = %lu\n\n",numA,sizeof(int)); unsigned int numB = 1; printf("unsigned int = %d ,size = %lu\n\n",numB,sizeof(unsigned int)); short numC = 10; printf("short = %d ,size = %lu\n\n",numC,sizeof(short)); unsigned short numD = 10; printf("unsigned short = %d ,size = %lu\n\n",numD,sizeof(signed short)); float numE = 10; printf("float = %f ,size = %lu\n\n",numE,sizeof(float)); double numF = 100; printf("double = %lf ,size = %lu\n\n",numF,sizeof(double)); long numG = 1000; printf("long = %ld ,size = %lu\n\n",numG,sizeof(long)); long long numH = 10; printf("long long = %lld ,size = %lu\n\n",numH,sizeof(long long)); unsigned long numI= 1000; printf("unsigned long = %lu ,size = %lu\n\n",numI,sizeof(unsigned long)); long double numJ = 100; printf("long double = %Lf ,size = %lu\n\n",numJ,sizeof(long double)); return 0;}
数据类型 变量名
例如:int sum; 变量在定义之后如果在使用前未赋值,其值是不确定的!sizeof():获取变量或者类型的所占字节数。
同一优先级的运算符,运算次序由结合方向所决定。
简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符C语言中的判断句语法如下:
if (布尔值) { funcA();} else if (布尔值){ funcB();} else { funcC();}
#includeint main() { int score = 90; if(score < 60) //单行代码可以不加花括号 printf("this student grade is D\n"); else if (score < 70){ //多行代码需要加上花括号 printf("this student grade is "); printf("C \n"); }else if(score < 80){ printf("this student grade is B\n"); }else{ printf("this student grade is A\n"); } return 0;}
除了if…else…之外还有另外一种判断结构: switch语句
switch (expression) //这里表示需要匹配的值{case /* constant-expression */: //可匹配的选项 /* code */ break; //匹配成功之后跳出整个switch语句default: //当所有可匹配项都不匹配时执行的语句块 break;}
布尔表达式 ? A : B;
#includeint main(){ //可以使用括号包裹增加可读性 int num = 1 > 2 ? 1 : (2 > 3 ? 2 : 3); printf("num = %d\n",num): return 0;}
1、expression中的值必须是整形常量表达式,double之类的值是不允许的
2、default总是在所有条件都不匹配时执行。 3、当一个选项匹配之后没有break。则会之直接顺序执行后续的代码,不管case是否匹配,直到遇到break语 示例代码:#includeint main(){ int a = 100; switch (a) { case 100: printf("this char is a\n"); case 'b': printf("this char is b\n"); default: printf("this char is default\n"); break; case 'c': printf("this char is c\n"); break; } return 0;}//执行结果:/*this char is athis char is bthis char is default*/
for(expression A; expression B; expression C){ // write code}
#includeint main(){ for(int i = 1;i < 10;i ++){ for(int j = 1;j <= i;j ++) printf("%d * %d = %d\t",i,j,i * j); printf("\n"); } return 0;}void test(){ for(;;){ printf("这是一个死循环"): }}
while(expression){//表达式结果为真时才会执行内部代码 //write your code}
#includeint main(){ int count = 10; while(count){ // count -- => count = count - 1; printf("count = %d \n", count --); } return 0;}
do{ // write your code}while(expression);
#includeint main(){ do { // -- count => count = count - 1 printf("count = %d \n", --count); } while (count > 0); return 0;}
#includeint main(){ int x = y = 10; int numA = x --; // numA = 10,x = 9 int numB = -- y; // numB = 9,y = 9 /* count -- 和 count ++的区别主要在于: count-- 是先赋值给numA再执行自减操作 --count 是先执行自减操作再赋值给numB */ return 0;}
以上就是本次C语言基础上的全部内容。C语言是我们编程的基础语言,C语言学好了再学习Java、python、go等语言都很快速!编程是一门重视实操的课程,在学习完理论知识后需要结合实操才能说真正掌握!可以多动手做做C语言教材后面的习题,学有余力的同学可以在leetcode上做一做题目!我们下期见!
转载地址:http://xtden.baihongyu.com/