C语言中for循环问题(一个小坑需注意)

今天分享一下C语言中的for循环中我们常常忽略的小问题。

举一个小例子来说明,大家也可以自己先算一下哦

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int a=0;
	int b=0;
	for(a=0,b=0;b=0;a++,b++)
		b++;
	return 0;
}

这是一道面试题,问程序运行几次呢?运行结果如何?

其实这个小题关键是我们有没有被上图所示的b=0迷惑。此处的意思是赋值而并非判断。b=0显然为假,所以一次都不执行,直接跳出循环了。下面我还是把运行结果给大家看一下。

如果此处不是b=0而是b等于一个非零的值,则此程序会陷入一个死循环。下面把代码稍微改一下(改为b=1)看一下运行结果。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int a=0;
	int b=0;
	for(a=0,b=0;b=1;a++,b++)
		b++;
	return 0;
}

运行结果如下:

今天的分享到这里,希望大家以后对于此类容易忽视的小问题也加以警觉,谢谢观看。

到此这篇关于C语言中for循环问题的文章就介绍到这了,更多相关C语言for循环坑内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言菜鸟基础教程之for循环

    先看程序: #include <stdio.h> int main() { for(int i = 0; i < 5; i++) { printf("i = %d\n", i); } printf("Loop ended!\n"); return 0; } 运行结果: i = 0 i = 1 i = 2 i = 3 i = 4 Loop ended! for循环的语句结构为: for(表达式1; 表达式2; 表达式3) {     语句; } 其执

  • 快速学习C语言中for循环语句的基本使用方法

    对于某个特定任务我们可以采用多种方法来编写程序.下面这段代码也可以实现前面的温度转换程序的功能:#include <stdio.h> /*打印华氏温度-摄氏温度对照表*/ main() { int fahr; for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32)); } 温度的下限.上限和步长都是常量, printf 函数的第三个参数必

  • C语言中for循环问题(一个小坑需注意)

    今天分享一下C语言中的for循环中我们常常忽略的小问题. 举一个小例子来说明,大家也可以自己先算一下哦 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { int a=0; int b=0; for(a=0,b=0;b=0;a++,b++) b++; return 0; } 这是一道面试题,问程序运行几次呢?运行结果如何? 其实这个小题关键是我们有没有被上图所示的b=

  • golang语言中for循环语句用法实例

    本文实例讲述了golang语言中for循环语句用法.分享给大家供大家参考.具体分析如下: for循环是用来遍历数组或数字的.用for循环遍历字符串时,也有 byte 和 rune 两种方式.第一种为byte,第二种rune. 复制代码 代码如下: package main import ( "fmt" ) func main() { s := "abc汉字" for i := 0; i < len(s); i++ { fmt.Printf("%c,&

  • 详解Go语言中for循环,break和continue的使用

    目录 基本语法 有始有终的条件循环 带条件的循环 无限循环 数组循环 使用计数器循环 利用range循环 Map循环 string的遍历 Break和Continue 基本语法 和C语言同源的语法格式,有始有终的循环,for init; condition; post { } 带条件的while循环,for condition { } 无限循环,for { } 有始有终的条件循环 sum := 0 for i := 0; i < 10; i++ { sum = sum + i } 注意:i变量在

  • 聊聊C语言中sizeof运算符的一个陷阱

    sizeof运算符通常用于获取变量或类型所占内存的大小(单位是字节) #include <stdio.h> struct D{ char a; int b; }; int main() { int a = 0; struct D d; printf("sizeof(a)=%ld\n", sizeof(a)); printf("sizeof(int)=%ld\n", sizeof(int)); printf("sizeof(d)=%ld\n&qu

  • C语言中sizeof函数踩过的坑总结

    sizeof很简单,但是却很容易令人踩坑. 正文 先来看这样一段代码 int main() { int i=2; printf("%d\n",sizeof(i++)); printf("%d\n",i); return 0; } 非常简单的一段代码 当时我认为答案应该是 4 3 可是结果却是出乎我的意料了 这是为什么呢? 下面来仔细说一下 通过调试观察虽然确实有i++这么一句代码,但是却没有实现.说到这里很多人可能犯了和我一样的错误,认为sizeof是一个函数. 其

  • Python创建二维数组实例(关于list的一个小坑)

    0.目录 1.遇到的问题 2.创建二维数组的办法 •3.1 直接创建法 •3.2 列表生成式法 •3.3 使用模块numpy创建 1.遇到的问题 今天写Python代码的时候遇到了一个大坑,差点就耽误我交作业了... 问题是这样的,我需要创建一个二维数组,如下: m = n = 3 test = [[0] * m] * n print("test =", test) 输出结果如下: test = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 是不是看起来没有一点问

  • 详解使用element-ui table组件的筛选功能的一个小坑

    使用element-ui table组件的筛选功能的一个小坑 使用自定义模板和筛选功能,一开始的代码 <el-table-column v-if="key==='isShow'" label="是否在发现页展示" :filters="[{text:'已展示',value: true},{text: '未展示', value: false}]" :filter-method="filterShow"> <tem

  • 浅谈vue-cli5关于yarn的一个小坑

    目录 问题 解决方案 原因 问题 昨天有小伙伴下了我的 DEMO之后反映运行报错. 因为这个项目环境我测试过许多次,不管是npm还是yarn都能正常运行,所以听到运行报错时下意识地就认为是依赖没有安装成功的问题,建议他配一个淘宝镜像. 当他把报错贴上来的时候,我发现原来真不是依赖的问题,vue-cli抛出了错误如下: Error: The project seems to require yarn but it's not installed. 解决方案 报错信息已经把原因说的很清楚了:这个项目

  • R语言中for循环的并行处理方式

    前言 本文用于记录笔者在将R语言中的for语句并行化处理中的一些问题. 实验 这里使用foreach和doParallel包提供的函数实现for语句的并行处理. for语句脚本 func <- function(x, y, z) { return(x^y/z) } # >>> main <<< x <- 2 y <- 3 z <- 1:100000 start <- (proc.time())[3][[1]] a <- 0 for (

  • 深入解析Go语言中for循环的写法

    for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环. 语法 for循环在Go编程语言中的语法是: 复制代码 代码如下: for [condition |  ( init; condition; increment ) | Range] {    statement(s); } 下面是控制在一个流程的for循环: 如果condition是可用的,那么对于循环只要条件为真时执行. 如果for子句是( init; condition; increment ) 存在则 初始化(init

随机推荐