
c语言笔记
文章平均质量分 55
c语言日常学习笔记
Xiao |
May the Force be with you
|| 一定存在只有你才能做到的事情
展开
-
C语言结构体详解
int year;int day;int id;//学号 char * name;//名字 int age;//年龄 float score;//成绩 Birthday birthday;//生日 } Student;//数据类型 + 变量名 : int a;float b;char c;return 0;}原创 2022-08-15 18:29:28 · 1622 阅读 · 1 评论 -
C语言中的m+=i++是什么意思?
m+=i++(m=m+i=i+1)是赋值运算符与自增运算符的综合使用,该表达式等于如下2条表达式:m=m+i;i++;如果表达式换成m+=++i(m=m+i+1=i),则表达式等价于:i++;(i=i+1)m=m+i;//++i是先进行加一运算后参与表达式的运算;//而i++是先将i的者带入表达式计算表达式计算完以后,i的值再加一;...原创 2021-10-28 23:50:44 · 5617 阅读 · 0 评论 -
如何按逆顺序输出一个多位数各个位上的数字?
原理就是用(number/1000)使千位变成个位,然后%10得到个位上的数字。借助求余和除法运算,将需要取出的数字变成个位,然后用求余的方式取出来;编译器:TDM-GCC 4.9.2 64-bit Release。3,按逆顺序输出各位数字,如123输出321。操作系统:Windows10。2,分别输出每一位数字。1,求出数字是几位数。...原创 2021-11-03 22:53:00 · 4798 阅读 · 1 评论 -
如何改变if与else的配对关系
最后想要提醒大家一点在C语言笔试题上可能会有不打花括号的if-else的配对情况,这种并不是书有问题,而是题目故意不打花括号来考察我们的if-else的配对。建议:if-else语句即使写的不是复合语句也建议给if打上花括号,这样一来可以增强程序的可读性和逻辑性。ps:我这里所说的格式化是指编译器会自动将这个代码整理,目的仅仅是增强可读性;编译器:TDM-GCC 4.9.2 64-bit Release。else与最靠近它的,没有与别的else匹配过的if匹配。例题:如何将else与第一个if配对?...原创 2021-11-03 22:22:46 · 3141 阅读 · 1 评论 -
输入了数据,为什么输出的结果为0.00?初学者容易犯的几种错误
printf输出用什么%(,)也没有那么讲究,根据需求来就行。但是double 定义的r,h要与%lf对应才可,否则会出现储存不了的情况。就是说如果你先写的输出语句后写的输入语句,那么结果会被计算机随机赋上0.作者也是刚刚学习C语言1个多月,有什么不足的地方欢迎各位大佬指正。其次定义不能用int(整形),以整形计算时,无论输出如何都为0。3,输出以%f或者%lf。2,计算时以浮点型计算。注意:用float定义时,用%lf或者%f输入都可以。那么输出不能为%d,否则因为显示不了小数而被计算为0。...原创 2021-10-28 15:24:46 · 15938 阅读 · 0 评论 -
在函数内改变全局变量的值的相关例题
#include <stdio.h>int x,y,z,n;void p(int *x,int y) { --*x; y++; z=*x+y; n=y;}int main(void) { x=5; //变式为:int x=5,y=2,z=0; y=2; z=0; p(&x,y); printf("%d,%d,%d#\n",x,y,z); printf("%d\n",n); p(&y,x); printf("%d,%d,%d\n",x,y,z);.原创 2021-12-22 22:47:09 · 2917 阅读 · 1 评论 -
static局部变量(静态局部变量的用法)
有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的储存单元不释放,在下一次调用此函数时,该变量已经有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。通过下面的例子可以了解它的特点:#include <stdio.h>int main() { int f(int); int a=2,i; for(i=0; i<3; i++) { printf("%d\n",f(a));//这里的f(..原创 2021-11-27 11:20:01 · 7870 阅读 · 0 评论 -
形参和实参的储存单元是否一致?
先引入一个例题:以下正确的说法是:在C语言中()。A.实参和其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只有当实参和与其对应的形参同名时才共占用存储单元D.形参是虛拟的,不占用存储单元答案:A实参和形参是各占独立存储空问,函数调用过程中,实参向形参拷贝复制值。实参是个变量,形参也是个变量。如果占用同一片空间的话,编译时候就不存在实参形参类型不匹配的报错参数传递中,形参值的改变不影响实参的值。那么就可能会有疑问了当数组名作为函数的形参是,这个两个.原创 2021-11-27 11:54:17 · 13211 阅读 · 1 评论 -
c语言函数调用后必须带回返回值?
文章是根据问题摘录不同作者的回答摘录补充而成,void的作用在于: (1)对函数返回的限定; (2)对函数参数的限定。先给一个例子定义函数返回值函数名(参数1,参数2,参数3,.......){内容}int sum (int a,int b){int c;c=a*b;return c;}其中第一个int是返回值就是别的函数调用此函数时这个函数给他的一个值。形式一:如果调用时不需要返回值,则函数写为voidsum(inta,intb){....}...原创 2021-10-30 08:30:42 · 7529 阅读 · 0 评论 -
i++与++i是什么意思?
自增(++),自减(--)运算符谭浩强的书是这样描述的:自增(++)自减(--)运算符的作用是使变量的值加1或者减1,例如:++i,--i(在使用i之前,先使i的值加(减)1)i++,--i(在使用i之后,使i的值加(减)1)粗略的看,++i和i++的作用相当于i=i+1。但++i和i++的不同之处在于:++i是先执行i=i+1,再使用i的值;而i++是先使用i的值,再执行i=i+1。如果i的原值等于3,请分析下面的赋值语句。①j=++i;(i的值先变为4,再赋值给j,j的值为4)原创 2021-11-12 22:22:59 · 12624 阅读 · 4 评论 -
C语言期末考试复习参考
本文章是根据我自己期末复习以及题库为大家总结的C语言知识点马虎错误:1,若定义变量的语句有错误,常见考点有两个:(1)变量的类型(是int型还是double型,在定义前要想好。以及定义函数时定义的函数类型与返回值的类型要一致,虽然不一致时系统会自动转换,但是我们还是保持一致的好)(2)在定义用于存放运算结果的变量时,一定要赋初值。一般赋值0以及循环for语句的初值i等等。2,若scanf语句有错误,常见考点有两个:(1)格式声明符号要与后面欲赋值的变量的类型一致例如:double定义原创 2022-01-06 08:57:13 · 858 阅读 · 0 评论 -
C语言逗号表达式在for循环语句中的使用
先直接举出逗号表达式一般的例题#include <stdio.h>void main(){int a; printf("%d\n",(a=3*5,a*4,a+5)); printf("%d\n",a);}对于逗号的使用简单而言:在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,整个表达式的值是最后一个表达式的值。例题的答案为20,程序运行结果如下:可能会有答案算成65,这里的错误点是在括号里面计算时(表达式1,表达式2,表达式3)原创 2022-01-12 21:39:26 · 4669 阅读 · 1 评论 -
C语言储存类别小结
按作用域来分 全局变量 静态外部变量(仅本文本可以使用) 外部变量(即非静态的外部变量,允许其他文件引用) 局部变量 自动变量,即动态局部变量(离开函数,值就消失) 静态局部变量(离开函数,值依旧保留) 寄存器变量(离开函数,值就消失) 形式参数可以定义为自动变量或寄存器变量按变量的生存周期分 动态储存 自动变量(本函数内有效) 寄存器变量(本函数内有效...原创 2021-12-05 15:27:53 · 537 阅读 · 0 评论 -
结构体与typedef关键字
先引入例题:有typedef关键字的设有以下说明语句: typedef struct stu { int a; float b; } stutype;则下面叙述中错误的是( D )。A、struct是结构类型的关键字 B、struct stu是用户定义的结构类型 C、a和b都是结构成员名D、stutype是用户定义的结构体变量名//这里是将结构体的定义和typedef语句原创 2021-12-24 23:39:08 · 2959 阅读 · 2 评论 -
*p++是什么意思?
利用指针引用数组元素,比较方便灵活,有不少技巧。在专业人员中常喜欢用一些技巧,以使程序简洁。在看别人写的程序时可能会遇到一些令人混淆的情况,要仔细的分析。请分析下面几种情况(设p开始时指向数组a的首元素(即p=a)。① 分析:p++;* pi;p++使p指向下一元素a[1]。然后若再执行* p,则得到下一个元素 a[1]的值② *p++;由于++和*同优先级,结合方向为自右而左,因此它等价于 *(p++)值。先引用p的值然后,实现*p的运算,然后使p自增1...原创 2021-12-10 23:17:36 · 21627 阅读 · 6 评论 -
C语言代码输入的规范
代码规范:代码规范有七大原则:分别表现在空行,空格,成对书写,缩进,对齐,代码行,注释七方面的规范上:1)空行:规则一:定义变量后面要空行规则二:每个函数定义结束后都要空行规则三:总之,代码之间实现不同的功能就要空行2) 空格规则一:关键字之后要留空格。像 const、case 等关键字之后至少要留一个空格,否则无法辨析关键字。像 if、for、while 等关键字之后应留一个空格再跟左括号(以突出关键字)规则二:函数名之后不要留空格,应紧跟左括号(以与关键字区别原创 2021-12-18 20:40:40 · 3245 阅读 · 0 评论