c语言编程——注意事项

1、main函数要有返回值

2、变量

  1. int 型-2109 ~2109
  2. long long int -91018 ~91018
  3. float 6~7位
  4. double 15~16位
  5. 字符型:注意\0代表的是空字符NULL,不是空格;
  6. (新类型名)变量名,强制转换

3、常量

  1. 宏定义 //#define
  2. const 数据类型名 变量名=常量 // const double pi=3.1415926535

4、运算符

  1. 除法运算符是向下取整的(直接舍掉小数)
  2. 条件运算符:( ? : )是c语言中唯一的三目运算符
  3. 复合运算符 m/=(n+1) 即m=m/(n+1)

5、scanf()与printf()

  1. scanf处了整个数组的输入外,都需要取地址符
  2. scanf除了%c外,对其他格式符的输入是以空白符(空格,换行等)为结束标志的,字符数组使用%s读入的时候以空格跟换行为读入结束的标志。
  3. double型在printf中为%f,在scanf中为%lf
  4. %md ; %0md ;%.mf;(以m位进行右对齐输出,不足m位空格补上;以m位进行右对齐输出。不足m位用0补上;保留m位小数)

6、getchar和putchar

  1. getchar可识别换行符

7、常用math函数

  1. fabs(double x) //double float型取绝对值
  2. floor(double x) ceil(double x) //double float型向上向下取整
  3. pow(double r, double p) // double float 型 r的p次方
  4. sqrt(double x) //double型的算数平方根 sqrtf(float x) float型
  5. log(double x) logf(float) //分别为 double float 型的对数
  6. sin(double x);cos(double x);tan(double x);
  7. asin(double x);acos(double x);atan(double x); //反三角函数
  8. round(double x) //四舍五入

8、if语句

  1. if(n)=if(n!=0)
  2. if(!n)=if(n==0)

9、switch

  1. 如果没有break ,switch 就会从匹配的位置开始,执行到结束

10、while

  1. 省略的方式和if相同
    while(n)=while(n!=0)
    while(!n)=while(n==0)

11、do while

  1. 会先执行一次循环体

12. for

  1. C语言中不允许在for里面定义变量
  2. c++可以在for里面定义变量

13、break 和continu

  1. break是直接退出循环
  2. continue是结束当前循环,进入下一循环

14、数组

  1. C语言中定义数组,要定义出大小,数组的大小只能是常量不能是变量
  2. 如果数组大小较大(大于106级别),要定义在main函数外面。
  3. memset可以为数组赋相同的值,for example //menset(shuzuming,key,sizeof(shuzuming))
  4. 字符数组可以直接赋值字符串来赋值 //scanf("%s",str);//不用加取地址符
  5. gets()识别换行符作为输入结束,puts()输出后会多一个换行

15、string.h中的函数

  1. strlen()
  2. strcmp() 返回是一个int型//逐位比较的
  3. strcpy(目标字符串,被复制字符串) //结束符\0也会被复制过去(覆盖)
  4. strcat(目标字符串,被复制字符串)//接到目标字符串后面

16、sscanf 与 sprintf

  1. sscanf(str, “%d” ,&n); //把str中的内容以%d的形式写到n中
  2. sprintf(str, “%d”,n); //把n以%d的形式写到str中、
    for examp
    sprintf(str, “%d:%.2f,%s” , n, db, str2);
    //sprintf 将int型变量n,double型变量db,char型数组str2以%d:%.2f,%s格式写到字符串数组str中

17、函数

  1. 以数组作为函数的参数时,第一维不需要写长度
  2. 函数中对数组修改,数组就会发生变化 //修改数,数不会变

18、指针

  1. int *p 实际上是 int* p
  2. int *p=&a,是将a的地址赋给了p,而不是*p
  3. 数组比较特殊,数组名就是记录数组的首地址,即a=&a[0],a+i与&a[i]等价

19、结构体

  1. 访问指针变量
    struct studentInfo{
    int id;
    char name[20];
    studentInfo* next;
    }stu, *p;

    访问
    (*p).id=p->id
    (*p).name=p->name
    (*p).next=p->next

C语言编程注意事项 1. 每个程序中一定包含main()函数, 尽管C语言中对函数命名没有限制。 2. printf函数永远不会自动换行, 只能用\n来实现, 回车键进行的换行在编译中会出现错误信息。 3. 在vs2008等平台中编译、测试要加 system("pause"); 来暂停dos自动退出引起的printf无法显示。 4. 所有自定义变量必须声明才能使用。 5. 每行一般只写一条语句, 在运算符两边加一个空格, 便于阅读。 6. 整数除法将会自动舍位, 不进行四舍五入的操作。 7. for(初始化部分;条件部分;增长部分) 比while 更适用于初始化和增长步长都是单条语句的情况。 8. 使用 #define 名字替换文本对部分"幻数" 赋予意义便于阅读 #define结尾无需;号来结束。 9. EOF(end of file)表示没有字符输入时定义在stdio.h 头文件中 EOF不等于\n 换行等。 10. 由于!= 的优先级大于 = ,因此如果对判断中存在变量赋值时 应对赋值加() 例如: while((c = getchar()) != EOF)。 11. getchar() 用于用户输入直至键入回车键。 12. 变量名以字母和数字组成, (下划线"_"被默认为字符, 以下划线为首写字母的为库类变量名), 变量常以小写字母开头,内部变量名前31位有效, 外部变量名至少前6位保持唯一性。 13.在C语言中是区分字母大小写的。 14. 一个字符常量为一个整数, 用''单引号括起来。例如: '0' 为48, 它与0没有任何关系。 15. ANSI C语言的转义符: \a 响铃符; \b 回退符; \f 换页符; \n 换行符; \r 回车符; \t 横向制表符 ; \v 纵向制表符; \\ 反斜杠; \? 问号; \' 单引号; \" 双引号; \ooo 八进制数; \xhh 十六进制数; '\0' 表示0, 即(null)。 16. 'x'与"x"的区别: 'x'表示一个整数, 字母x在其字符集中对应的数值, "x"表示包含一个字符x 以及一个结束符'\0'。 17. const在声明变量中起限制作用, 该限定变量的值不能被修改。 18. %运算符不能应用于float或double类型。 19. char类型转换为int型时, 因为无法判断它是signed还是unsigned,这样其结果有可能为负数, 所以转换时尽量指定signed和unsigned限制符。 20. ++i与i++ 的不同之处: ++i是先 +1再使用i, i++ 是先使用i再 +1。 21. 三元运算符"?:" 第一个表达式的括号不是必须的, 但是由于三元表达式的优先级非常低, 因此我们还是将第一个表达式用()括起来以便于阅读和理解。 22. C语言中可以使用递归 (即函数调用自身函数), 这样做并不节省储存空间也不加快执行速度, 只是使程序紧凑便于理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值