学习笔记
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
这里有个优先级口诀: 括号成员第一; //括号运算符[]() 成员运算符. -> 全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*& 乘除余三,加减四; //这个"余"是指取余运算即% 移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等 等于(与)不等排第七; //即== != 位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|) "三分天下"八九十; 逻辑或跟与; //逻辑运算符:|| 和 && 十二和十一; //注意顺序:优先级(||) 底于 优先级(&&) 条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意 的是赋值运算符很多! 逗号运算级最低! //逗号运算符优先级最低 成员运算符.是用来调用函数和成员的,域运算符:是用来指明是方法或变量所在哪个类的 (1)%d int; %c char; %f float; %ld long; %lf double; %s string (2)&是一个取地址符,&a表示变量a的地址。scanf("%d",&a); 表示从键盘接收一个整数存储到内存中&a所指的地址,也就是变量a中。(f为“格式”format)。 scanf的作用是:按照a,b,c的内存地址将a,b,c的值存进去。 (3)char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的 (4)定义变量时可以把相同类型的变量列在一起,而定义参数却不可以 (5) sqrt系Square Root Calculations(平方根计算),例SQRT(16)=4 。abs :求整数的绝对值,例Abs(-3.7),其值为3.7。 在C语言中还有fabs,也是求绝对值的,不同的是,fabs函数参数与返回值为实型。 (6) C标准中空白字符有:空格(„ ‟)、换页(„\f‟)、换行(„\n‟)、回车(„\r‟)、水平制表符(„\t‟)、垂直制表符(„\v‟)六个。下面是本人的一些理解。 换码符'\t',表示水平制表位(horizeontal tab),它的作用就相当于你在编程的时候按一下“Table”键,使光标以8个字符为基准进行跳跃 。 垂直制表符(„\v‟)垂直制表符不常用。它的作用是让„\v‟后面的字符从下一行开始输出,且开始的列数为“\v”前一个字符所在列后面一列。 换页(„\f‟)换页符的在终端的中的效果相当于*nix中clear命令。终端在输出„\f‟之后内容之前,会将整个终端屏幕清空空,然后在输出内容。给人的该觉是在clear命令后的输出字符串。回车(„\r‟)我们在编辑文件时,一般敲一下回车键就会转到下一行编辑。那么“回车”和“换行”是不是一回事呢?显然不是的。大家不要被键盘上回车键效果所蒙蔽,此“回车”(回车符)非彼“回车”(回车键)。回车(„\r‟)效果是输出回到本行行首,结果可能会将这一行之前的输出覆盖掉。例如执行:puts("hello world!\rxxx");在终端输出的是:xxxlo world! “空格”相信大家对它非常了解。值得注意的是它的ASCII码为0x20,而不是0x00。0x00代表空(NULL)。本人初学C时认为空格值为0,惭愧惭愧。 (7)%f 对应 float、%lf 对应 double、%Lf 对应 long double、%e以科学计数法显示 %g在%e和%f中择短显示 %f代表按实型输入或输出,而%lf代表按双精度输入输出,不一样的,别混用! 例:double a,b,c,disc,x1,x2,realpart,imagepart; //float a,b,c,disc,x1,x2,realpart,imagepart; scanf("%lf,%lf,%lf",&a,&b,&c); //scanf("%f,%f,%f",&a,&b,&c); (8)putchar定义:该函数将制定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。例如:putchar('#') ; 输出# (9)Getchar:输入对应的字符。 他俩都是以行为结束或以EOF为结束;EOF (Enf Of File) putchar 在屏幕上输出一个字符,不需格式. (10)逻辑运算符有4个,它们分别是: !(逻辑非)、 ||(逻辑或)、&&(逻辑与) 、^(异或)。在位运算里面还有 &(位与)、|(位或)的运算。 (11)if(fabs(a)<=1e-6)所代表的含义 :fabs(a) 取a的绝对值,然后判断这个值是否小于等于0.000001 。 0不一定非要用1e-6代替。 (12)C语言中0和1e-6的区别是什么,为什么有时候可以替换有时候却不可以?区别很微小。这涉及到实数在计算和存储过程中会有一些微小的误差,对于一些与零作比较的语句来说,有时会因误差而导致原本是等于零但结果却小于零之类的情况发生,所以常用一个很小的数如1e-6代替0。解决办法是多调试。 浮点数在内存中存储是有误差的,浮点的0不是真的0,所以只能找一个目标值比较。无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式 。因为1.0在计算机中可能存为0.999999或1.00001等,很难恰好是1.0。 (13)const常量,表示不能修改,即只能读,不能写. 例:const int n = 5; n就是5,不能改变n的值,n一直只能是5 (14) 本文来源:https://www.wddqw.com/doc/800765bdb0717fd5370cdc13.html