C语言编译注意事项及其经验分享(在学习过程中会持续更新)

1 篇文章 0 订阅
1 篇文章 0 订阅

首先致敬我的第一个C程序!(现大一计算机学生一枚,非常感谢各位的支持!)

#include<stdio.h>
int main()
{
    printf("hello world\n");
    return 0;
}
  • nclude<stdio.h>:含头文件 std:标准 i:input输入(从键盘上获取信息) o:output 输出(向屏幕打印信息)

  • int: 函数的返回值类型 main:程序的主函数,入口函数,有且只有一个

  • ():参数列表 {}:函数的实现体 return 0:返回正常的退出结果

一下是本人在用Dev c++,学C语言过程中总结的一些细节和注意事项。(若有不足请多多担待)

  • 注意要在英文键盘下敲入各种符号

scanf语句注意事项

  • scanf的输出输入格式化一致(例如double a   printf("%lf")   scanf("%lf"),必须严格一致

  • scanf语句不加转义字符“\n",scanf输入函数须要原样按照“”双引号中的内容输入,例如scanf(“%d,%d”,&a,&b);当在键盘输入时,输入第一个整数时要原样输入逗号“,”后,否则输出结果会发生改变。

  • scanf语句输入实数时不能指定精度,例如:scanf("%8.2f")//Error

  • scanf语句连用%c时,输入多个字符时,不能用空格符(空格符在%c环境下也是一个符号),要挨着敲

  • 用scanf读字符串时,与空格、TAB、回车,结束。

  • 回车 空格,也为一个字符

  • 保存文件时,文件名不要忘记输入扩展名“c”,若不输入,则系统默认为“cpp”,会按照C++语言规则进行编译。

  • 在C语言中,由多个源文件组成的程序需要建立工程,否则程序无法运行

char型也称小整型,int型和char型可以相互运算

#include<stdio.h>
int main()
{
    char a='D'
    int b=0,c=3;
    b='D'+c;
    printf("%d\n",b);
    return 0;
}
  • 标识符命名规则(创建变量名时的规范)

        01.标识符不可以是关键字

        02.标识符只能有字母、数字、下划线组成

        03.第一个字符必须是字母或者下划线组成

        04.标识符的字母是区分大小写的

  • 为了能够让编译器更好的管理内存空间,我们引入数据类型。
  • 1字节=8b(bit比特位);8b=1B,1024B=1KB;   字节:内存计量最小单位 。 
  • 没有返回值时语句结束不用加return 0;主函数直接用void main()

  • 整型格式化输出输入

        01.短整型short: %hd\n

        02.整型int: %d\n

        03.长整型long: %ld\n

        04.长长整型long long: %lld\n

  • 字符格式化输出输入

        字符:单引号(一个字符可以是转义字符 ;字符串:双引号)

        01.字符:%c\n

        02字符串:%s\n

  • 有符号常量和无符号常量

    01.有符号int型常量: printf("%d\n",10);

    02.无符号int型常量:printf("%u\n",10U);

    03.有符号long型常量:printf("%ld\n",10L);

    04.无符号long型常量:printf("%lu\n",10UL);

  • 有符号和无符号变量

    01.定义有符号变量,隐藏的加了关键字signed

    signed int a=10;
     printf("%d\n",a);

    02.定义无符号变量,手动添加关键字unsigned

    unsigned int b=10;
     pprintf("%u\n",b); 
  • 进制格式化

    01.

    int num=10;
     printf("十进制结果:%d\n",num);   
     printf("八进制结果: %#o\n",num);
     printf("十六进制结果:%#x\n",num);
     printf("十六进制结果:%#X\n",num);

    02.

    int a=123;//十进制
     int b=0123;//八进制
     int c=0xabc;//十六进制
     ​
     printf("a=%d\n",a);
     printf("b=%#o\n",b);
     printf("c=%#X\n",c);
  • 八进制和十六进制不用考虑正负

    02.

     char num=0x9b;//十六进制 
     printf("%d\n",num);//有符号取
     printf("%x\n",num&0x000000ff);//无符号取
     printf("%u\n",num&0x000000ff);//无符号取
  • 除法运算注意事项:两个整型进行除法运算,结果依然是整型,直接舍弃余数,不用四舍五入

    想要避免则在其中任意数加".0",方可显示小数

  • 取余运算分子分母必须为整数

  • 格式化注意事项:

     printf("num1%%num2=%d\n",num1%num2)//输出内容(取模)中两个%%才打印一个%
  • 两个小数是不可以进行取模运算的

  • 自增注意事项

    01.作为独立语句,前置和后置没有区别 02.int a=++num110;//先对变量本身进行++运算,在计算表达式 03.int b= num2++10;//先计算表达式,然后对变量本身进行++运算 04.建议在表达式运算的时候,不要同时有前置和后置++运算

    05.只能对整型变量进行自增自减运算(i++)

  • 赋值运算

    01.将=右边的值赋给=左边的值

    02.左值:能够在等号左边的值;右值:只能在等号右边的值

    03.当做混合运算的时候,=号右边的表达式看作一个整体

  • 真真假假

    01.计算机中0代表假;非0代表真 02.底层编码中有符号的编码前缀1代表负号

  • 浮点型

    01.常量:

    printf("sizeof 3.14=%d\n",sizeof(3.14) ;//默认将小数是double

    02.变量:

    float a=3.1415f;
     printf("a=%f\n",a);//printf输出小数默认保留6个小数位 
     printf("a=%.2f\n",a);//.2f代表保留两位小数    
    double b=3.1415;
     printf("b=%lf\n",b);
     printf("b=%.3lf\n",b);//保留3位小数,最后一位四舍五入 
  • 科学计数法

    +-m*10的+-n次方其中m为整型数或实型数,n为整型数,m和n缺一不可,即使m是1或n是0也不能省略,格式中的“+”可以省略。

     float f1=3e2;//翻译结果:3*10^2 
     printf("f=%.10f\n",f1);
    
     float f2=3e-2;//翻译结果:3*10^-2 
     printf("f2=%.10f\n",f2);
  • 逻辑与&&

    01.同真为真、其余为假 02.短路特性:只有表达式1为真,才去执行表达式2 //表达式1&&表达式2

     6<4 && printf("hello\n");
      6>4 && printf("hello\n"); 
  • 逻辑或||

    01.短路特性:只有表达式1为假,才去判断表达式2

    6<4 ||printf("hello\n");
     6>4 ||prinyg("hello\n");

  • 描述区间

    例1:区间2到10 5<=B<=10;//错误写法 B>=5 && B<=10;//正确写法 例2:例1的补集 B<=5 || B>=10

  • 优先级问题 01.优先级号越小,优先级越高 02.同一级别的优先级,要看结合性

  • 编译器优化

    char和short是比较小的类型,容易出现溢出,运算的时候编译器先转为int数据类型

  • if语句注意事项 01.不要在if语句后面加分号 02.if语句实现体如果不加(),只能识别最近的一行代码

03.做对比操作的时候,不要写成=,而是用== 04.default为“默认”操作,相当与if语句中的else

  • 循环程序注意事项 执行循环程序的时候,程序必须有跳出循环的出口,否则将无限制循环,运用break退出当前循环

  • C语句是C程序最小的语言单位

  • ___()格式为C函数

        

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值