首先致敬我的第一个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函数