前言

为什么称为是n+1呢,因为我会持续更新本条博客。

1.“/”与“%”基本用法

除法运算符“/” :二元运算符,具有左结合性。参与运算的量均为整形时,结果为整型,舍去小数。如果运算量中有一个实型,结果为双精度型。

求余运算符“%” :二元运算符,具有左结合性。参与运算的量均为整形。求余运算的结果等于两个数相除后的余数。

“%”的一些注意点:

1.%与/在运算中先后顺序不同,例如;x%y/z与(x%y)/z的结果不同,在 用pow时pow(x%y,3)与pow((x%y),3)的结果也是不同的。

2.“/”通常去掉尾数,而“%”通常用来获得尾数。

2.C语言’\0’的含义

‘\0’是判定字符数组结束的标识,表示这串字符到结尾了;

注意:在字符数组中’0’是占一个位置的!

例如定义char c[6]=“hello”,而在内存中字符数组c则是"hello\0";

即’\0’在数组中占有空间却不被我们看到;

所以如果一个长度为10的字符串要放在字符数组里的话就应该把字符数组的长度定义为11

代码示例:

#include

int main()

{

char s[6]="hello";

int i=0;

while(s[i]!='\0')

{

printf("%c ",s[i]);

i++;

}

printf("\n");

}

输出结果

h e l l o

3.如何把字符1转化成整数1

#include

#include

int main()

{

char i='1';

printf("%d\n",i);

printf("%d",i-'0');

return 0;

}

输出结果

49(49为字符1的acsll码)

1

4.scanf与gets连用时的异常

例如

#include

#include

#include

int main()

{

char n,a[100];

scanf("%c",&n);

gets(a);

printf("%c",n);

printf("%s",a);

return 0;

}

当输入n后按下空格会直接输出n的结果,而没有这是为什么呢?下面来解释一下:

应为当用scanf赋值完按下空格或者回车,会被认为输入结束,而空格和回车被当作字符而没被scanf内变量吸收,会直接作用到gets上,被gets吸收,导致错误。

解决方法:可以在scanf();后加上getchar();或者改为scanf(“%d\n”,&n);

注:当scanf后有scanf("%c")时一样会出现相同异常

5.while(scanf)与while(gets)的正确用法

1. while(scanf()!=EOF)或者while(~scanf())

2. while(gets()!=NULL)

6.字符串比较原理

原理: 从两个字符串的第一个字符开始逐个进行比较(按字符的ASCII值进行大小比较),直到出现不同的字符或遇到‘\0’为止

就跟比较数字一样: 例如 1234 跟 1222 比较一样,第一个位跟第一位数字比,如果相等,看下一位,直到3和2比较,3大于2,这两个数的大小已经很明显了,就不用看下一位了,但是如果位数不同时,就不一样了,比如123 跟1234比较时,在字符中就被看为是1230和1234比较,字符串比较也是这样,只不过比较的是他们各自字符的ascll码。

本文同步分享在 博客“汤米先生”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

c语言 为什么i%3cn 1,c语言中n+1个基础且容易出错的知识点相关推荐

  1. perl语言中的AWK之基础篇

    perl语言中的AWK之基础篇 一:AWK与perl 1. Perl,我们并不陌生了到目前为止,它在web编程中的强大作用,对于每个web开发者而言,重要性不言而喻, 由于perl借取了C.sed.a ...

  2. c语言char有什么作用,C语言中char*和char[]用法区别分析

    本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很大.以下是个人的一些看法,有不正确的地方望指正 ...

  3. c语言char str什意思,C语言中,charstr的str到底表示什么?

    问题:C语言中,char str的 str到底表示什么? 描述: #include int main() { #第一处 char *pstr = "abcdef"; printf( ...

  4. c语言中变量加1,c语言中,指针加1的情况.指针变量详细介绍

    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个指针需要搞清指针的四方面的内容: 指针的类型, 指针所指向的 类型, 指针的值或者叫指针所指向的内存区, 还有指针本身所占 ...

  5. c语言输入10个数从小,C语言中,从键盘输入10个数,从小到大排列输出,怎

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:C语言中,从键盘输入10个数,从小到大排列输出,怎么写啊,最好注回答:#includestdio.h void swap(int * ...

  6. c语言strlen用法,如何使用c语言中的strlen()函数

    c语言中strlen()函数的用法是:[strlen(const char *str)].该函数用于计算字符串的长度,直到空结束字符,但不包括结束字符,并返回字符串的长度. 函数介绍: (推荐教程:c ...

  7. c语言while break用法举例,c语言中continue和break的用法

    目前,随着计算机在人们生活和工作中的普及,其教学研究地位也在逐渐提升.C语言是一种计算机程序设计语言,其具有高级语言和汇编语言的特点.下面小编就跟你们详细介绍下c语言中continue和break的用 ...

  8. main c语言中变量的定义,C语言中在main函数中定义的变量是全局变量么_后端开发...

    PHP 和 JavaSript 区别_后端开发 PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,主要用于Web开发领域,而JavaSript是一种具有函数优先的轻量级,解释型或即时编译型的高 ...

  9. c语言define需要分号骂,C语言中define的用法

    C语言中define的用法 2016-01-06 15:00  来源: 博客园 define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便. 预处理命令以"#& ...

最新文章

  1. flex伸缩布局盒模型总结
  2. 深入浅出Yolo系列之Yolov3amp;Yolov4核心基础知识完整讲解
  3. python的翻译-Python编写简单的谷歌翻译软件
  4. C++(五)——运算符重载
  5. Redis-学习笔记01【Redis环境搭建】
  6. 深度学习:卷积层的实现
  7. 可以用推理来过度分析《无穷动》
  8. office2016打开PPT出现解决VBE6EXT.OLB不能被加载问题的解决办法
  9. 电源管理与驱动设计笔记
  10. 从服务器上下载下来的代码,部署到本地时,Url自动带www前缀
  11. SQL Server 之 修改时不允许保存更改
  12. alpha测试什么意思,和Beta测试有何区别?
  13. IDEA断点变成了白色
  14. 网络安全[脚本小子] -- SSI注入
  15. 如何在NLP领域做成一件事by周明ACL计算语言学会候任主席(附PDF公号发“NLP做事”下载rar讲座PPT等10文件)...
  16. 有苦有乐的算法 --- 图的深度优先遍历
  17. 翻译 | Qt for Python的技术愿景前瞻
  18. 「秒杀购物商城业务服务」「分布式架构服务」盘点中间件服务
  19. Ubuntu16.04 安装中文输入法(搜狗输入法)
  20. 如何创建一个安全的Docker基础镜像

热门文章

  1. git总是提示输入用户名密码的解决记录
  2. html设置了标签但是定义不了,在HTML标签管理器中设置不带元素ID的HTML中的事件...
  3. hashmap扩容机制_图文并茂:HashMap经典详解!
  4. JAVAWEB入门之Sevlet的执行原理
  5. android光传感实现摩斯密码,根据莫尔斯代码 - Android的闪烁闪光。 如何避免ANR次数由于睡觉? (火炬APP)...
  6. python追加_如何在Python中追加文件?
  7. qfile指定从多少行开始_大牛进化路上之Linux基础命令,看看你了解多少?
  8. php怎么加编码,php怎么设置编码格式
  9. iframe 跨域_【梯云纵】搞定前端跨域
  10. python实现xmind_Python xmind库(生成框架图)