- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中要注意的一些问题
C语言中要注意的一些问题
下面列出了一些C语言中常见的问题和注意事项,跟考试无关,有些表达不是很严格,仅供辅助学习。
C语言中规定,每条语句结束时末尾加分号,而不是每行末尾加分号!
在用scanf和printf函数输入和输出时,一定要记得int跟%d对应,long跟%ld对应,float和double跟%f对应,否则不能正确输入和输出数据。
使用scanf函数时,在双引号中最好只出现各种格式控制符,如”%d%d%f%c”,而不要随意增加其它字符,以免画蛇添足,增加输入的麻烦。
通过scanf(“%s”,字符数组名)和gets(字符数组名)都可以输入一个字符串,并将其存储在指定的字符数组中。区别在于,前者当输入字符中遇到空格就认为输入结束,后者则可以接收包含空格的字符串。
在数值运算时,要注意防止数据的溢出。特别是int类型数值范围较小,比较容易溢出。一旦溢出,结果出错。
要注意各种运算符的优先级,需要时可以加()来保证运算顺序满足要求。
参加关系和逻辑运算的数据可以是任意类型和任意值,计算机将所有非零数理解为1(真),而0则为假,然后进行运算。得到的结果只有两种,要么是1,要么是0。
整数的比较可以使用关系运算;浮点型数据在比较是否相等时,一般这样实现
fabs(表达式或变量)=1e-6
而字符串比较必须通过strcmp函数实现。
strcpy(字符数组1,字符数组2或字符串常量)的功能相当于
字符数组1=字符数组2或字符串常量 (程序中绝对不能写成这样!)
变量和数组在定义时若未赋初值(未初始化),则其内容是随机数(不确定)。数组若是部分初始化,则未指定初值的数组元素自动赋值为0(也可以理解为字符’\0’)
for循环非常常用,要注意后面括号中三个表达式的执行顺序。若非必要,最好不要省略三个表达式。若循环体多于一条语句,必须用{}将它们括起来,变成语句块。(对于while和do..while循环也是这样)
数组元素是一个挨一个放在内存一片连续的空间中。对于多维数组,则采用行主序组织存放。比如二维数组arr[M][N],看作有arr[0], arr[1], …, arr[M-1]个一维数组,每个一维数组有N个元素
arr[0][0], arr[0][1], …, arr[0][N-1] ←第0行
arr[1][0], arr[1][1], …, arr[1][N-1] ←第1行
...
arr[M-1][0], arr[M-1][1], …, arr[M-1][N-1] ←第M-1行
首先存放第0行元素,接着是第1行,……。
二维数组实际上也可以形象地看作一张二维表格。
单个数组元素就是一个独立的变量,只是访问时应该写成
数组名[下标]
下标可以是常量、变量或表达式(当然表达式的结果应该是整数),第一个数组元素下标必定为0。编译器不对下标越界(下标值超出数组定义的大小),须程序设计者自己保证。
若要逐个访问数组中的每个元素,一般通过循环(常用for)。一维数组用一重循环,二维数组用二重循环,以此类推。比如对于二维数组arr[M][N]
for ( i=0; iM; i++) /*外循环,i控制外循环的次数。在这里i控制访问二维数组的第i行*/
for( j=0; jN; j++) /*内循环,j控制内循环的次数。在这里j控制访问二维数
组的第j列*/
arr[i][j]=…; /*访问数组中的某个元素*/
当然,调换一下,外循环控制列,内循环控制行也是可以的,完全看你的需要。
函数
一个C程序可以由多个文件组成,每个文件包含若干个函数,其中只能有一个main函数。各个函数可以相互调用,甚至自我调用(即递归调用),但不能调用main函数。计算机一定从main函数开始执行(实际上就是操作系统调用main函数),最终在main函数结束。
函数也有类型,称函数类型,实际上是指该函数返回值的类型。当确定一个函数没有返回值时,最好指定函数类型为void,否则默认类型为int,容易造成误解。
函数调用和返回时,若类型不一致,计算机会做自动类型转换。例如:
int fun( float a){
float x;
……
return x; /*由于函数类型为int,而x是float,因此计算机自动将float转换为int,然后将结果送回主调函数(这里是main函数)*/
main(){
int a;
long b;
……
b=fun(a); /*实参a的类型为int,而形参类型为float,当实参赋给形参时,自动类型转换int(float;当fun函数返回时,返回值为int,而b是long,赋值时又自
原创力文档


文档评论(0)