欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > C语言基础

C语言基础

2025/4/20 13:28:57 来源:https://blog.csdn.net/weixin_51644244/article/details/140717566  浏览:    关键词:C语言基础

C语言 (基础)

一、学习前的引入

1.1、C 常用的转义字符

  1. \t 一个制表位,实现对齐的功能
  2. \n 换行符
  3. \ 一个\
  4. " 一个"
  5. **\’**一个‘
  6. \r 一个回车printf(“张无忌赵敏周芷若小昭”)

1.2、常见的问题解决办法

  1. fatal error LNK1104: 无法打开文件"c:??.exe
    解决方法:修改源文件后,需要关闭控制台,才能正确运行
    2) 缺少分号:

    解决方法:编译失败,注意错误出现的行数,再到代码中指定位置改错。
    3)错误总结
    学习编程最容易犯的错是语法错误。C 语言要求必须按照语法规则编写代码。如果你的程序违反了语法规则,例如:忘记了分号、大括号、引号,或者拼错了单词,中文:和英文:C 编译器都会报语法错误。尝试着去看懂编译器会报告的错误信息。

1.3、注释(comment)

1)单行注释:
基本格式
格式: // 注释文字
2) (多行注释)块注释:
基本格式
格式: / 注释文字/**

1.4、规范的代码风格


1.5、C语言的运行过程

  1. 编辑:比如编写我们的 hello.c 文件, 就是 源代码.
    2) 编译:将 hello.c 程序 翻译成 目标文件(hello.obj) // 在计算机底层执行
    3) 链接:将目标文件 hello.obj + 库文件 生成可执行文件 (MyProject01.exe) //在计算机底层执行
    4) 运行:执行 .exe 文件, 得到运行结果

1.6、C 程序开发注意事项

  1. C 程序的主体结构说明
#include ...
void main() { // {} 包括内容, 称为函数体语句 1;
语句 2;
}
  1. C 程序源文件以“c”为扩展名。
    3) C 程序的执行入口是 main()函数。
    4) C 语言严格区分大小写。
    5) C 程序由一条条语句构成,每个语句以“;”结束
    6) 大括号都是成对出现的,缺一不可

二、变量

2.1、变量的基本介绍及使用

int num = 1 ; //整型double score = 2.3; //小数char gender = ‘A’; //字符
char name[] = “尚硅谷”; //字符串
//说明
//1. 如果输出的整数 %d
//2. 如果输出的是小数 %f , 如果希望保留小数点 %.2f
//3. 如果输出的是字符 %c
//4. 如果输出的是字符串 %s
//5. 在输出不同数据时,对应的格式化的 形式要对应起来printf(“num=%d sorce=%.2f gender=%c name=%s”, num, score, gender, name); getchar();

2.2、变量使用注意事项

  1. 变量表示内存中的一个存储区域(不同的数据类型,占用的空间大小不一样)
    2) 该区域有自己的名称 和类型
    3) 变量必须先声明,后使用
    4) 该区域的数据可以在同一类型范围内不断变化
    5) 变量在同一个作用域内不能重名
    6) 变量三要素 (变量名+值+数据类型) ,这一点请大家注意。

2.3、C语言数据类型

类型存储大小值范围
char1字节-128即-(2^7)到 127 (2^7-1)
unsignedchar1字节0到 255 (2^8 - 1)
signedchar1字节-128即-(2^7)到 127 (2^7-1)
int
signedint
2或 4字节-32,768 (- 2^15 ) 到 32,767 (2^15-1)
或 -2,147,483,648 (- 2^31) 到 2,147,483,647 (2^31-1)
unsignedint2或 4字节0到 65,535 (2^16-1)或 0到 4,294,967,295 (2^32-1)
short
signedshort
2字节-32,768 (- 2^15)到 32,767 (2^15-1)
unsignedshort2字节0到 65,535 (2^16 - 1)
long
signedlong
4字节-2,147,483,648 (- 2^31) 到 2,147,483,647 (2^31 - 1)
unsignedlong4字节0到 4,294,967,295 (2^32 - 1)

2.3.1、整型的使用细节

  1. 各种类型的存储大小与操作系统、系统位数和编译器有关 ,目前通用的以 64位系统为主。

    2) 在实际工作中,c程序通常运行在 linux/unix操作系统下.二级考试,使用 windows
    3) C语言的整型类型,分为有符号 signed和无符号 unsigned两种,默认是 signed
    4) C程序中整型常声明为 int型,除非不足以表示大数,才使用 longlong
    5) bit(位): 计算机中的最小存储单位。byte(字节):计算机中基本存储单元。
    1byte = 8bit [二进制再详细说,简单举例一个 short3和 int3 ]
    示意图:
    **short3 **在内存中占有 2 字节
    **int3 **在内存中占有 4 个字节


2.4、浮点型的分类

类型存储大小值范围精度
float单精度4字节1.2E-38到 3.4E+386位小数
double双精度8字节2.3E-308到1.7E+30815位小数
  1. 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位 , 浮点数是近视值
    2) 尾数部分可能丢失,造成精度损失。

2.4.1、浮点型使用细节

  1. 浮点型常量默认为 double型 ,声明 float型常量时,须后加‘f’或‘F’。
    2) 浮点型常量有两种表示形式
    十进制数形式:如:5.12 512.0f .512 (必须有小数点)
    科学计数法形式:如:5.12e2、5.12E-2
    3) 通常情况下,应该使用 double型,因为它比 float 型更精确。
    4) printf("d1=%f ", d1); // 在输出时,默认保留 小数点 6位

2.5、字符类型(char)

字符类型可以表示单个字符,字符类型是 char,char是 1个字节(可以存字母或者数字),多个字符称为字符串,在C语言中 使用 char数组 表示,数组不是基本数据类型,而是构造类型[关于数组我们后面详细讲解.]

2.5.1字符类型使用细节

  1. 字符常量是用单引号(‘’)括起来的单个字符。例如:charc1=‘a’; charc3= ‘9’;
    2) C中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c3=‘\n’; //'\n’表示换行符
    3) 在 C中,char 的本质是一个整数,在输出时,是 ASCII码对应的字符。
    4) 可以直接给 char赋一个整数,然后输出时,会按照对应的 ASCII字符输出 [97]
    5) char类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode码.

2.5.2、字符类型本质探讨

  1. 字符型 存储到 计算机中,需要将字符对应的码值(整数)找出来存储:字符’a’——> 码值 (97)——>二进制 (1100001)——>存储()
    读取:二进制(1100001)——>码值(97)——> 字符’a’——>读取(显示)
    2) 字符和码值的对应关系是通过字符编码表决定的(是规定好)

2.6、布尔类型:boolean

2.6.1、基本介绍

1)C语言标准(C89)没有定义布尔类型,所以 C语言判断真假时以 0 为假,非 0 为真 [案例]
2) 但这种做法不直观,所以我们可以借助 C语言的宏定义。
3)C语言标准(C99)提供了_Bool型,_Bool仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1,C99还提供了一个头文件 <stdbool.h>定义了bool 代表_Bool,true代表1,false代表0。只要导入 stdbool.h,就能方便的操作布尔类型了 ,比如 boolflag =false;[了解]
Ø 条件控制语句; if
Ø 循环控制语句; while …

2.7、基本数据类型转换

2.7.1、自动类型转换

介绍:当 C程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。

2.7.2 、数据类型按精度(容量)大小排序为



以上图片中的变量可以自动转换成

2.7.3、自动类型转换细节说明

  1. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成精度最大的那种数据类型,然后再进行计算(如int型和 short 型运算时,先把 short 转成 int 型后再进行运算)。
    2) 若两种类型的字节数不同,转换成字节数大的类型,若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型
    3在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边的类型将转换为左边的类型,如果右边变量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入

2.8、强制类型转换 格式[(类型)表达式]

将精度高的数据类型转换为精度小的数据类型。使用时要加上强制转换符 ( ),但可能造成精度降低或溢出;格外要注意。
Ø 强制类型转换一般格式如下:
(类型名) 表达式
什么是表达式:任何有值都可以称为表达式,比如
1+2, intnum=2

这种强制类型转换操作并不改变操作数本身

三、指针

指针表示一个地址(存放的是地址)

#include <stdio.h>
void main() {int num = 1;//定义一个指针变量,指针//说明//1. int * 表示类型为 指针类型//2. 名称 ptr , ptr 就是一个 int * 类型//3. ptr 指向了一个 int 类型的变量的地址int *ptr = &num;//num 的地址是多少//说明 1:如果要输出一个变量的地址,使用格式是 %p//说明 2: &num 表示取出 num 这个变量对应地址printf("\nnum 的值=%d num 地址=%p", num, &num);//1.指针变量,本身也有地址 &ptr//2.指针变量,	存放的地址 ptr//3.获取指针指向的值 *ptrprintf("\nptr 的地址是 %p ptr 存放的值是一个地址为 %p	ptr 指向的值=%d", &ptr,	ptr, *ptr);getchar();
}


3.1、 指针细节说明

1)基本类型,都有对应的指针类型, 形式为 数据类型 *,比如 int的对应的指针就是 int ,float对应的指针类型就是 float ,依次类推。
2)此外还有指向数组的指针、指向结构体的指针,指向共用体的指针,(二级指针,多级指针)后面我们再讲到数组、结构体和共用体时,还会详细讲解。

#include <stdio.h>void main() {int num = 88;int *p = &num;int *p2 = &num;printf("num的地址:%d;p的地址:%d;p2的地址:%d;",num,p,p2)
}
//假如说一个指针指向另一个指针,那么例如上面案例中p2中存放的还将是num地址。


3.2、值传递和地址传递

C 语言传递参数(或者赋值)可以是值传递(pass by value),也可以传递指针(a pointer passed by value), 传递指针也叫地址传递。
1) 默认传递值的类型:基本数据类型 **(整型类型、小数类型,字符类型), 结构体, **共用体。
2) 默认传递地址的类似:指针、数组

3.2.1、值传递和地址传递使用特点:

  1. 值传递:将变量指向的存储内容,在传递/赋值时,拷贝一份给接收变量.

    2) 地址传递 也叫 指针传递:如果是指针,就将指针变量存储的地址,传递给接收变量,如果是数组,就将数组的首地址传递给接收变量。

四、常量

4.1、基本介绍

1)常量是固定值,在程序执行期间不能改变。这些固定的值,又叫做字面量。
2)常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。
3)常量的值在定义后不能进行修改.

4.1.1整数常量

1)整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x或 0X表示十六进制,0表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后缀,后缀是 U和 L的组合,U表示无符号整数(unsigned),L表示长整数(long)。后缀可以是大写,也可以是小写,U和 L的顺序任意

4.1.2浮点常量

  1. 浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。

4.1.3字符常量

  1. 字符常量是括在单引号中,例如,‘x’ 可以存储在 char类型的变量中。字符常量可以是一个普通的字符(例如’x’)、一个转义序列(例如 ‘\t’。

4.1.4字符串常量

  1. 字符串字面值或常量是括在双引号 “” 中的。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。可以使用空格做分隔符,把一个很长的字符串常量进行分行

4.2、常量的定义

4.2.1定义常量的两种方式

  1. 使用 #define预处理器。
    2) 使用 const 关键字

4.3、#define预处理器

  1. #define预处理器定义常量的形式 #define常量名 常量值
#include <stdio.h>
#define PI 3.14	//定义常量 PI 常量值 3.14 
int main() {PI = 3.1415	可以吗?=》 不可以修改,因为 PI 是常量//可以修改 PI 值?//PI = 3.1415; //提示 = 左值 必须是可修改的值double area;double r = 1.2;//半径area = PI * r * r;printf("面积 : %.2f", area); getchar();return 0;
}

4.4、 const关键字

  1. 可以使用 const声明指定类型的常量 **const数据类型 常量名 = 常量值; **
#include <stdio.h>
//1. const 是一个关键字,规定好,表示后面定义了一个常量
//2. PI 是常量名,即是一个常量,常量值就是 3.14
//3. PI 因为是常量,因此不可以修改
//4. const 定义常量时,需要加 分号
const double PI = 3.14; 
int main() {
//PI = 3.1415	可以吗? => 不可以
double area; double r = 1.2; area = PI * r * r;
printf("面积 : %.2f", area);
getchar(); return 0;
}

4.5 、const和 #define的区别

  1. const定义的常量时,带类型,define 不带类型
    2) const是在 编译、运行的时候起作用,而 define是在编译的预处理阶段起作用
    3) define只是简单的替换,没有类型检查。简单的字符串替换会导致边界效应[案例演示].
    4) const常量可以进行调试的,define是不能进行调试的,主要是预编译阶段就已经替换掉了,调试的时候就没它了
    5) const不能重定义,不可以定义两个一样的,而 define通过 undef取消某个符号的定义,再重新定义 [案例]
    6) define可以配合#ifdef、 #ifndef、 #endif来使用, 可以让代码更加灵活,比如我们可以通过#define来 启动或者关闭 调试信息。[案例]

五、算术运算符

5.1、算术运算符一览表:

image.png
细节:1) 案例演示算术运算符的使用(operator.c)。
+, - , * , / , %, ++, – , 重点讲解 /、%、++
2) 自增:++ 作为独立的语句使用:前++和后++都完全等价于 i=i+1;
作为表达式使用
前++:++i先自增后赋值后++:i++先赋值后自增
– ,+、-、* 是一个道理,完全可以类推

5.1.2细节说明

  1. 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
    如:int x= 10/3 ,结果是 3
    2) 当对一个数取模时,可以等价 a%b=a-a/b*b , 这样我们可以看到 取模的一个本质运算。
    3) 当 自增 当做一个独立语言使用时,不管是 ++i; 还是 i++; 都是一样的,等价
    4) 当 自增 当做一个 表达式使用时 j = ++i 等价 i = i + 1; j = i;
    5) 当 自增 当做一个 表达式使用时 j = i++ 等价 j = i; i = i + 1;

5.2、关系运算符(比较运算符)一览表

image.png

5.2.1、细节说明

  1. 关系运算符的结果要么是真(非 0 表示, 默认使用 1),要么是 假(0 表示)
    2) 关系运算符组成的表达式,我们称为关系表达式。 a > b
    3) 比较运算符 “==”(关系运算符) 不能误写成 “=” (赋值)

5.3、逻辑运算符一览表

image.png

void main() {
double score = 70;//成绩if(score>=60 && score<=80){
printf("ok1");
} else {
printf("ok2");
}int a = 10, b = 99;
//说明:
//1. 在进行 && 操作时, 如果第一个条件为 false ,则后面的条件不在判断
//2. 该现象称为 短路现象,所以 逻辑与 也称为 短路逻辑与
if(a < 2 && ++b>99) {	// printf("ok100");
}
printf("b=%d\n", b); //b=99 getchar();
}

5.3.1、逻辑运算符的短路现象

void main() {
int a = 10, b = 99;
//说明
//1. 在进行逻辑与时,如果第一个条件为真,则不再执行后面的条件,整个结果为真
//2. 该现象称为 逻辑或短路现象,因此 逻辑或也称为 短路逻辑或
if(a > 5 || b++>100) { // printf("ok100");
}
printf("b=%d\n", b); // b= 99 getchar();
}

5.4、赋值运算符一览表

image.png

5.4.1、赋值运算符特点

  1. 运算顺序从右往左
    2) 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值
    3) 复合赋值运算符等价于下面的效果比如:a+=3;等价于 a=a+3;
    4) 注意在运算时,可能截断小数点后面的部分

5.5、位运算符一览表(需要用到二进制)

image.png

5.6、三元运算符

5.6.1、基本语法 条件表达式 **? **表达式 **1:**表达式 2;

  1.  如果条件表达式为非 0 (真),运算后的结果是表达式 1;<br />2)      如果条件表达式为 0 (假),运算后的结果是表达式 2;<br />3)      口诀: 一灯大师 =》 一真大师
    

5.6.2、使用细节

  1.  表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换), 否则会有精度损失<br />2)      三元运算符可以转成 if--else语句<br />intres=a>b ?    a++:    --b;    //if... else..
    

5.7 运算符优先级一览表

优先级运算符名称或含义使用形式结合方向说明
1[]数组下标数组名[常量表达式]左到右
2()圆括号(表达式)/函数名(形参表)右到左
3.成员选择(对象)对象.成员名左到右
4->成员选择(指针)对象指针->成员名左到右
5-负号运算符-表达式左到右单目运算符
6~按位取反运算符~表达式左到右
7++自增运算符++变量名/变量名++左到右
8自减运算符–变量名/变量名–左到右双目运算符
9*取值运算符*指针变量左到右双目运算符
10&取地址运算符&变量名左到右双目运算符
11!逻辑非运算符!表达式左到右双目运算符
12(类型)强制类型转换(数据类型)表达式左到右双目运算符
13sizeof长度运算符sizeof(表达式)右到左双目运算符
14/表达式/表达式右到左双目运算符
15*表达式*表达式左到右双目运算符

5.7.1、运算符优先级小结:

  1.  结合的方向只有三个是从右向左,其余都是从左向右<br />2)      所有的双目运算符中只有赋值运算符的结合方向是从右向左<br />3)      另外两个从右向左的结合运算符,一个是单目运算,还有一个是三目运算()<br />4)      逗号的运算符优先级最低<br />5)      说一下优先级的大概的顺序 算术运算符 > 关系运算符 > 逻辑运算符(逻辑非! 除外) > 赋值运算符 > 逗号运算符<br />6)      注意不需要刻意的记, 常用就慢慢有印象.
    

5.7.2、运算符优先级注意事项和细节:

上表中,优先级同为1 的几种运算符如果同时出现,那怎么确定表达式的优先级呢?这里我们专门说明一把
image.png

5.8、标识符的命名规则

  1. 由 26 个英文字母大小写,0-9 ,_或 $ 组成
    2) 数字不可以开头。
    3) 不可以使用关键字和保留字,但能包含关键字和保留字。
    4) C 语言中严格区分大小写,长度无限制。
    5) 标识符不能包含空格。

5.8.1、标识符命名规范

  1. 程序中不得出现仅靠大小写区分的相似的标识符
    i nt x, X; 变量 x 与 X 容易混淆
    2) 所有宏定义、枚举常数、常量(只读变量)全用大写字母命名,用下划线分隔单词比如: const double TAX_RATE = 0.08; //TAX_RATE 只读变量
    #define FILE_PATH “/usr/tmp”
    3) 定义变量别忘了初始化。定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据, 运行程序, 会异常退出.
    4) 变量名、函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [驼峰法,小驼峰, 比如 short stuAge = 20;]
    比如: tankShotGame 大驼峰 [TankShotGame]

5.9、关键字

5.1.1、关键字的定义和特点

image.png
5.10、键盘输入语句

  1.  include<stdio.h><br />2)      使用 scanf函数<br />3)      使用适当的格式参数接收输入
    

第六章、二进制和位运算

6.1、进制介绍:

  • 二进制:0,1,满 2进 1,C语言中没有二进制常数的表示方法。
  • 十进制:0-9,满 10 进 1。
  • 八进制:0-7,满 8 进 1.以数字 0开头表示
  • 十六进制:0-9及 A-F,满 16进 1.以 0x或 0X开头表示。此处的 A-F不区分大小写。[A->10B->11 C->12D->13E->14F->15 ]

6.2.1、进制的图示:

image.png
image.png

6.2、进制之间的相互转换:

  • **第一组:(其它进制转十进制) **
    • 二进制转十进制
      • image.png
    • **八进制转十进制 **
      • image.png
    • 十六进制转十进制
      • image.png
  • 第二组: (十进制转其它进制)
    • **十进制转二进制 **
      • image.png
    • **十进制转八进制 **
      • image.png
    • 十进制转十六进制
      • image.png
  • 第三组(二进制转其它进制)
    • 二进制转八进制
      • image.png
    • 二进制转十六进制
      • image.png
  • **第四组(其它进制转二进制) **
    • 八进制转二进制
      • image.png
    • 十六进制转二进制
      • image.png

6.3、位运算

6.3.1、位运算符

image.png

6.3.2、位运算说明(1)

它们的运算规则是:

    1. 按位与& : 两位全为1,结果为 1,否则为 0
    1. 按位或| : 两位有一个为 1,结果为 1,否则为 0
    1. 按位异或 ^ : 两位一个为 0,一个为 1,结果为 1,否则为 0 4)
  • 4) 按位取反 : 0->1 ,1->0
    • 比如:~2=? ~-5=? 2&-3=? 2|3=? 2^3=?
    • image.png

6.3.3、位运算说明(2):

、<< 算术右移和算术左移,运算规则:
1) 算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位
2) 算术左移 <<: 符号位不变,低位补 0
image.png

第七章、程序流程控制

7.1、分支控制if-else介绍

让程序有选择的的执行,分支控制有三种:

  1. 单分支
  2. 双分支
  3. 多分支

7.1.1、单分支

基本语法
if(条件表达式){
执行代码块;
}

7.1.2、双分支

基本语法
if(条件表达式){
执行代码块 1;
}else{
执行代码块 2;
}

7.1.3、多分支

基本语法
if(条件表达式 1){
执行代码块 1;
}elseif (条件表达式 2){
执行代码块 2;
}……else{
行代码块 n;
}

7.2 switch分支结构

7.2.1基本语法和流程图:

image.png
image.png

void main() {/*
案例:
请编写一个程序,该程序可以接收一个字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期
二 …	根据用户的输入显示相依的信息.要求使用switch 语句完成*/char c1 = ' '; char c2 = 'a';
printf("请输入一个字符(a,b,c,d)");
scanf("%c", &c1);//switch
//表达式: 任何有值都可以看成是一个表达式
switch(c1) {
case 'a' :	//'a' => 97printf("今天星期一, 猴子穿新衣");break; //退出 switch
case 'b' :printf("今天星期二, 猴子当小二"); break;
case 'c' :printf("今天星期三, 猴子爬雪山"); break;
case 'd' :printf("今天星期四, 猴子有急事"); break;
default : //default 是可选择,不是必须的printf("没有匹配到任何值~");}
printf("switch 结束~"); 
getchar();
getchar();
}

7.2.2 switch 细节讨论

  1. switch 语句中的 expression 是一个常量表达式,必须是一个整型(char、short, int, long 等)或枚举类型
    2) case 子句中的值必须是常量,而不能是变量
    3) default 子句是可选的,当没有匹配的 case 时,执行 default
    4) break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;
    5) 如果没有写 break,会执行下一个 case 语句块,直到遇到 break 或者执行到 switch 结尾, 这个现象称为穿透.

7.2.3 switch 和 if 的比较

  1. 如果判断的具体数值不多,而且符合整型 、枚举类型。虽然两个语句都可以使用,建议使用 swtich 语句。
    2) 其他情况:对区间判断,对结果为 真假 的判断,使用 if,if 的使用范围更广

7.3 for循环

7.3.1基本语法

循环变量定义
for(①循环变量初始化;②循环条件;④循环变量迭代){
③循环操作(多条语句);

7.3.2流程图

image.png

7.3.37.1.1注意事项和细节说明

  1.  循环条件是 返回一个表示真(非0)假(0)     的表达式<br />2)      for(;循环判断条件;) 中的初始化和变量迭代可以不写(写到其它地方),但是两边的分号不能省略。<br />3)      循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。<br />for(i= 0, j=0;**j <count**; i++,j += 2)//背影部分返回的值为一个布尔型要么为真要么为假
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词