快过年了,公司的项目基本都结了,想到复习一下基础,C是大一接触计算机开始接触的,就用了一个学期,后来陆续被C++和Java顶走了,刚开始确实被虐的够呛,尤其内存那里,导致我一度想放弃计算机!严重了呵呵呵,看着kenshincui 的博客,看到觉得容易混的,记录下来,全是琐碎的基础:
常用数据类型的长度
运算符
- 关系运算符为真就返回1,为假就返回0;在条件语言中非0即真(负数、正数均为真),只有0为假 ;
- C语言可以不保存关系运算符的值 ;
- 逗号表达式最终的值是最后一个表达式的值;
// // main.c // C语言基础 // // Created by Kenshin Cui on 14-7-12. // Copyright (c) 2014年 cmjstudio. All rights reserved. // #include <stdio.h> int main(int argc, const char * argv[]) { int a=2>1,b=2<1,c=99,d=0; int f=0,g=0,h=0,e=(f=3,g=4,h=5); a>0;//没有保存运算结果 printf("%d,%d\n",a,b);//结果:1,0 if(c){//可以通过 printf("true.\n"); } if(d){//无法通过 printf("false\n"); } printf("%d\n",e);//结果:5 return 0; }
常用格式符
对于格式符的输出宽度和浮点数的小数位我们可以进行精确的控制
// // main.c // C语言基础 // // Created by Kenshin Cui on 14-7-12. // Copyright (c) 2014年 cmjstudio. All rights reserved. // #include <stdio.h> int main(int argc, const char * argv[]) { int a=16; float b=79.3f; printf("[a=%4d]\n",a); printf("[a=%-4d]\n",a); printf("[b=%10f]\n",b); printf("[b=%.2f]\n",b); printf("[b=%4.2f]\n",b); return 0; }
运行结果如下
从运行结果我们不难发现格式符%前的正数可以设置前端补齐,负数设置后端对齐,如果数据的总长度超过设置的修饰长度,则按照实际长度显示;小数点后的整数用于控制小数点后保留小数位的长度。
Scanf函数
主要注意参数输入时的分隔符
scanf()函数用于从标准输入设备接收输入数据
// // main.c // C语言基础 // // Created by Kenshin Cui on 14-7-12. // Copyright (c) 2014年 cmjstudio. All rights reserved. // #include <stdio.h> int main(int argc, const char * argv[]) { int a,b,c; scanf("%d,%d,%d",&a,&b,&c);//此时需要输入:1,2,3 然后回车 printf("a=%d,b=%d,c=%d\n",a,b,c); return 0; }
对于scanf()函数我们需求强调几点
- 参数接收以回车进行结束操作
- 如果需要接收多个参数,多个参数之间的分隔符是任意的,但是如果分隔符是“空格”则实际输入的时候分隔符可以使空格、tab和回车(最后一个回车认为是结束符)