C语言细节(DOC可编).docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言细节(DOC可编).doc

C语言细节(补漏部分) 在C语言中,常用的标准输入/输出函数有:printf()函数,scanf()函数,putchar()函数,getchar()函数,puts()函数,gets()函数。 字符常量x和字符串常量”x“虽然搜只有一个字符,但是在内存中的情况是不相同的,其中,x在内存中占一个字节,”x“在内存中占有两个字节,x和\0。 如果格式控制传中有非格式字符则输入时也要输入该非格式字符。如语句scanf(a=%d,b=%d,a,b);,字符a,=,,以及b都属于非格式字符,在输入时,应该鸳鸯并按照位置输入。例如输入为a=123,b=456,函数会把123赋值给变量a,把456赋值给变量b。但是如果输入为“123,456”的话,时钟没有输入非格式字符,所以变量a和变量b都不会被赋值,系统给其一个默认值,而这个默认值往往不是所期望的值。 运算符的结合性: ?左结合:二元算术运算符就是左结合的 ?右结合:最典型的右结合则是赋值运算”=“ 逻辑与运算符的求职顺序是自左向右的。且运算符和||的优先级低于关系运算符,而且,逻辑表达式求职时是严格按照从左到右的顺寻对子表达式分别求值的,这样就会引起”短路“计算。即双目逻辑运算符首先计算出左侧运算对象的值,然后计算右侧运算对象的值。如果逻辑表达式的值可由左侧运算对象单独推导出来,则不会再ijsuan右侧运算对象的值。 跳转结构: C语言中提供了三种实现跳转结构的语句:break语句,continue语句和goto语句 BREAK:是程序跳出switch语句而执行其后的语句; ?? ? ? 还可以用与while,do...while,for循环语句中,是程序终止循环而执行循环后面的语 ? ? ? ?句 break语句不能用于循环语句和switch语句外的任何语句中,并且,在多层循环中,一个break语句只能向外跳一层 CONTINUE:continue语句用于for,while,do...while循环体重,作用是终止本次循环,就是跳过循环体中尚未完成的语句,接着进行下一次时候执行循环的判断。 GOTO:无条件专项语句 return语句的使用原则: ?? ?函数的返回值是通过return ?? ?如果北调函数是无返回值的,那么函数体内可以有return语句,也可以没有。但是如果被调函数是有返回值的,那么函数体内就必须包含return语句 ?? ?一个函数中可以包含有多个return语句,执行到第一条return语句时,函数都将返回到主调函数中,伺候的其他语句则不会继续执行 C语言中的参数传递机制: ?? ?C语言中的参数传递机制采用的是一种被称为“按值传递”的方式,当主调函数调用被调函数时,系统会把实参的值赋给形参,而且这个过程是绝对单向的,也就是说值能且仅能从实参传给形参,反过来则不行 形参仅仅是实参的一个副本,即两者并不共享同一储存单元,因此,形参的任何改变对于实参都没有实际意义, C语言中允许函数之间进行嵌套调用,但是并不允许函数的嵌套定义。也就是说一个函数内不能包含另外一个函数的定义。 递归过程调用的总结: 》递归过程的实现就是要自己调用自己 》递归调用的过程总是层层向下的,而退出时的次序则刚好相反 》主程序首次调用递归过程为外部调用 》递归过程每次递归调用自己都属于内部调用 》一个递归调用的函数,每次函数返回的地址都各不相同 以上的递归内容可以通过一个函数看出: #include stdio.h void func1(int a) { ????if (a 4) ????{ ????????printf(%d\n,a); ????????func1(a + 1); ????} } void func2(int a) { ????if (a 4) ????{ ????????func2(a + 1); ????????printf(%d\n, a); ????} } void main() { ????func1(0); ????func2(1); } 字符串的反转函数: //字符串的反转 void reverse(char s[], int l, int h) { ????if (l h) return; ????else ????{ ????????char t; ????????reverse(s, l + 1, h - 1); ????????t = s[l]; ????????s[l]=s[h]; ????????s[h]=t; ????} } 变量的存储类型: 变量作用域的不同归根结底是由于变量存储类型的不同而造成的。所谓存储类型就是指变量占用内存空间的方式,它也被称为“存储方式” 》静态存储 》动态存数 ?? ?静态存储的变量通常是在变量定义时就为其

文档评论(0)

rewfdgd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档