计算机基本概述(理解)

计算机只能识别通电和断电两种状态,以数学的方式表示即是0和1
常见计算机语言有: 机器语言(0和1),汇编语言(),高级语言(贴近自然语言)

C语言介绍(理解)

windows,linux,ios等系统大部分代码是用c语言写的,现在的高级语言,C++,C#,Java,Go等主要语言也是由C演化而来的,所以学习C语言更快上手其它语言

开发工具安装(理解)

下载 轻量级开发工具 codeblocks-17.12mingw-setup.exe download

使用自带mingw编译器的版本。安装codeblocks后,就可以在里面写代码了。祝好运。

安装 ,默认选项,打开也是
环境变量,用户和系统变量的区别,设置用户变量只会对当前用户有效,而系统变量对所有用户有效。
把安装目录 C:\Program Files (x86)\CodeBlocks\MinGW\bin 添加到环境变量中的系统变量。
测试环境变量是否添加成功,打开一个新的cmd, 运行 gcc -v,能输出版本号即添加成功

创建第一个C语言项目

File-> New -> Project
选中Console application -> 勾上 Large icons -> Go
Next -> 选择C Next -> 填上项目名、项目位置 Next -> Next ->Finish

运行 在左侧边栏可以看到当前项目了,双击项目入口文件 main.c ,编写代码,点击工具栏中的绿色按钮 Build and run 编译代码

创建第一个C语言程序(掌握)

int main()
{return 0;
}

函数的定义和执行(掌握)

系统会自动调用 main 函数,作为入口函数,把代码写在main函数中或者 在main函数中就可以调用其它的函数

HelloWorld代码实现(掌握)

#include <stdlib.h> 告诉系统去哪找 printf(),在 main() 函数中调用 abc() 函数

#include <stdlib.h>
int main()
{printf("hello wolrd!\n");abc();return 0;
}

第一个C语言练习(理解)

使用两种方法输出一个桃心
方法一、每一个 printf() 输出一行 *

...

方法二、把所有 * 写在同一个printf() , 使用 \n 换行

int main()
{
printf("  *** ***\n ********* \n   *****\n    ***   \n     *   \n");return 0;
}

编写C语言程序注意点(掌握)

一、分号,每条完整的语句后面必须加分号结束 “;”
二、中文,只允许出现在注释中或双引号中
三、main 函数,必须有一个 main 函数

main函数的其它写法(理解)

注释基本概念(掌握)

一、单行注释,有效范围是一整行,从双斜杠到行的末尾
二、多行注释,有效范围不受行数限制, 从/ * 到 */ 之间,多行注释内可嵌套单行注释

// 单行注释
/* 多行注释 */

注释的注意点和应用场景(掌握)

C语言关键字(理解)

系统保留字,全部小写,一共32个关键字

C语言标识符(掌握)

标识符只能由字母数字下划线 [a-zA-Z0-9_] 组成,且不能以数字开头,不能是C语言的关键字,标识符在C语言中严格区别大小写。

标识符命名规范(理解)

C语言数据类型(理解)

静态数据是指永久性的数据,一般存储在硬盘中,在计算机重启后,数据仍然存在,只要不删除就会永久存在
动态数据是存在内存当中的,数据在重启计算机后就会消失

C语言常量(掌握)

常量,即生成后不可改变的数据。比如生活中的身份证号码、性别等就是一种常量

  1. 整型常量(整数 int) 1、2、3,
  2. 实型常量(小数 float double) ,实型常量又分成单精度常量 如3.14 、1.0,双精度常量 如10.5E、2.15f 等。
  3. 字符型常量( char),即放在单引号内的单个字符,如 ‘a’ 、‘1’ 、 ‘,’ 等,字符型常量有且只有1个字符,字符常量可以是转义字符,但不能是中文字符。
  4. 字符串常量(),放到双引号内的字符串

C语言变量定义(掌握)

定义变量的格式: 数据类型 变量名称; int number;

为什么要指定数据类型?
目的是告诉操作系统,这个变量用来存储什么类型的数据,让计算机对变量分配相应的存储空间。

常用数据类型有哪些?

数据类型 注释
int 整型
float 实型 单精度浮点型,占4个字节,有效数为7位
double 实型 双精度浮点型
占8字节,有效数为16位,最好定义符点数时,都采用double类型
char 字符–一个字节
long 长整型
short 短整型

数据计量单位: 我们知道,计算机中存储的都是0和1 , 如果只有 1位 0,那么计量单位就是 bit,如果是 8位 00000000,计量单位就是 1byte(字节),如果是1024个 byte ,那么计量单位就是 1KB,如果有1024个 KB,那么计量单位就是 1M,假如有1024个 MB,那么计量单位就是 1GB

C语言变量使用(掌握)

申明变量格式: type variable; 或 type variable=value;

int num; // 申明变量
num = 100; //初始化
num = 101; //重新赋值
printf("%i\n",num); //输出变量值

变量的其它定义方式和初始化方式(掌握)

定义相同类型的多个变量可写在同一行,以逗号分隔。
定义变量时可以同时初始化,
定义变量可以完全初始化和部分初始化

int num2 , num3 ;
int num1 = 10, num5 = 101;
int num = 10, number ;

变量的作用域(掌握)

全局变量:是指定义在函数大括号外的,可以全局通常的变量
局部变量: 是指定义在函数大括号内 { type variable=value; } 的变量
作用域,即变量可以使用的有效范围,局部变量从定义变量开始 到 return 或者 右大括号 } 就结束了,全局变量从定义变量的开始位置到文件末尾结束。

局部变量在内存中的一个表现:

运行一个程序,首先,要把程序代码加载到内存当中,接下来程序会找到 main ,执行 main 函数之中的内容,当遇到一个左大括号 { ,程序会在内存中开辟一块内存空间用于存储内容,当程序遇到 赋值的变量后,会去查找这个变量是否申明过,如果找不到就说明没有内存空间明,也就无法存储这个变量值,继而导致程序出现错误 。
return 和 右大括号} 表示结束函数,也意味着内存空间的释放,在释放之后调用函数内的变量将不再有效

变量的注意点(掌握)

变量只能在作用域范围内使用,超出作用域后就不能使用
同一个作用域内,不能申明相同的局部变量名称,如果使用相同的变量,必须新开辟一块空间,如下:

int main(){int num=5;{int num =2;  //不同作用域则可以出现相同变量名}printf("%i",num);  // 输出 5return 0;
}

全局变量,可以出现相同的变量名称,但是同名变量不能都同时赋值。如 int n=1; int n=2;则出错

int number;
int number;
int main(){number =100;printf("%i",number);  // 输出100return 0;
}

printf函数输出不同类型数据(掌握)

printf 的格式
一、直接输出

printf("输出的内容");

二、格式化输出
格式: printf(“格式化字符串”,输出列表项),格式化字符串格式:%[标志] [输出宽度][.精度][长度]
输出整型数据 %i, %d
输出实型数据 : 单精度 %f , 双精度 %lf
输出字符型数据: %c

printf("%i\n",6);
printf("%d\n",7.7);
printf("%f\n",9.9f);
printf("%lf\n",10.10f);
printf("%c\n",'a');

printf函数宽度和标志(掌握)

格式化字符串格式:%[标志] [输出宽度][.精度][长度]
标志, + 输出加号,-左对齐,,0 右对齐," " 空格

int num = 99;
printf("%+i\n",num); //l标志+号,输出 +99,大于0才有加号,小于0即负数不会出现加号
printf("|%5i|\n",num); // %5,指定的数据至少输出5位,不够的用空格补齐,即 |   99|
printf("|%05i|\n",num); // %05,指定的数据至少输出5位,不够的用0补齐,输出 |00099|

printf函数精度和长度(掌握)

格式化字符串格式:%[标志] [输出宽度][.精度][长度]
精度即保留的小数位,单精度和双精度的有效位数是7和16,超出位数是无效数据

float num = 3.1415926;
printf("%.2f\n",num); // 3.14
printf("%.5f\n",num); // 3.14159
printf("%.*f\n",3,num); // 星号占位符,在后面告诉要保留的小数位数,输出 3.142

printf总结

格式化 注释
%d 按十进制整型数打印
%6d 按十进制整整数打印,至少6个字符宽度
%f 按照浮点数打印
%6f 按照浮点数打印,至少6个字符宽度
%.2f 按照浮点数打印,小数点后有两位小数
%6.2f 按照浮点数打印,至少 6个字符宽,小数点后有两位小数
%o 表八进制数
%x 表十六进制数
%c 表字符
%s 表字符串
%% 表百分号(%)本身

scanf函数基本使用(掌握)

scanf 用于接收键盘输入的内容,格式scanf(“格式化字符串”, 地址列表项); & 取地址符号

int num;
scanf("%i", &num);
printf("num = %i",num); // num = 9double fv;
scanf("%lf",&fv);
printf("fv = %lf\n",fv); // 1.200000

scanf函数注意点(掌握)

scanf 会忽略与设定数据类型不同的字符,例如申明类型 int,输入123abc55,scanf只会接收最前面的123

int num , num2;
scanf("%i %i",&num2,&num);  // scanf 中有多个变量时,必须按设定的格式输入,示例中的是空格,那么就必须空格分隔 "55 66",是逗号就逗号分隔
printf("num2 = %i, num=%i\n", num2 , num);

scanf函数实现原理(掌握)

scanf 函数会从输入缓冲区获取数据,当数据不存在就会阻塞,等待输入。
用户输入数据,scanf会将输入数据存入缓冲区,然后再从缓冲区获取。
如果输入缓冲区已经有数据,那么就不再要求用户输入,而是直接从缓冲区获取。

设置2个 scanf,可以一次输完,2个数据之间加上空格 示例:“10 20”,scanf 会获取到这2个数据。原理是scanf 从输入缓冲区获取10,第2个scanf会先从缓冲区获取数据,会取到空格,但是空格不是 int 型不符合要求,于是再次获取到20,由于2个scanf都取到数据,程序就不会再阻塞而是直接运行下一行代码。

int num, num2;
scanf("%i", &num);
scanf("%i", &num2);
printf("num=%i num2=%i\n",num,num2);

清空输入缓冲区(掌握)

当需要用户输入新的数据时使用
清空: fflush(stdin);
在scanf() 后面调用,清空缓冲区的内容,但是这个函数不能跨平台只能在windows上使用
清空:setbuf(stdin,NULL)
在scanf() 后面调用,支持跨平台,推荐用这一种。

scanf("%i", &num);
fflush(stdin);
setbuf(stdin,NULL);

运算符基本概念(理解)

算术、关系、逻辑、位 运算符

算数运算符(掌握)

算数运算符: 加减乘除取余 + - * / %

int num;
num = 10 + 1 ;
printf("%i\n", num ); // 11
printf("%i\n", num / 5 ); // 2
printf("%i\n", num * 5 ); // 55
printf("%i\n", num % 5 ); // 1

算数运算注意点(掌握)

C语言加减乘除注意点: 在运算中,整数与整数运算,得到的结果一定是整数,整数与小数运算,得到的结果一定是小数

double result = 10 /3;
printf("%lf\n", result);  // 3.000000
printf("%lf\n", 10 /3.0); // 3.333333

取余注意点:在取余运算中只能计算整数,如果除数或者被除数有小数会出现语法错误

double result = 10 %3;
printf("%lf\n", result); // 1.000000

自动类型转换上(掌握)

在C语言中,不同的数据类型之间不能直接运算,必须先转换,转换分为 自动转 和强制转换
运算转换:表达式的数据类型不一样时,小类型(字节长度小的)的数据会自动转成大类型(字节长度大的)的数据,

double d = 3.0;
int i = 10;
printf("%lf\n", i / d); // 3.333333

自动类型转换下(掌握)

赋值转换,当等号两边数据类型不一样时,等号右边的数据自动转成等号左边的类型

double d = 4.0;
int i = d;
printf("%i\n", i);  // 4

强制类型转换(掌握)

在数据前加上括号类型 ,例如:(int) value

double d = 4.0;
int i = (int)d;
printf("%i\n", i);  // 4

赋值运算符(掌握)

加等于 减等于 乘等于 除等于 += 、-= 、*= 、/=

int num = 10;
num += 5;
printf("%i\n", num); // 15
printf("%i\n", num-=1); // 14

自增自减运算符基本使用(掌握)

自增自减写在变量前后的区别(掌握)

++n 本次运算加1, n++ 本次运算值不变,下次调用 n 时加1

int num = 10 , n = 10;
printf("%i\n", num++); // 10
printf("%i\n", num); //11
printf("%i\n", ++n); //11

自增自减注意点(掌握)

只用于变量,不用在常量和表达式上
用于表达式一:

int a = 10, b = 5;
(a + b )++ ;// error

而这样写,从表面上看等于3,但是结果并没有,不同编辑器运算结果不一样。 codeblocks 等于 6
用于表达式二:

int a = 1;
int x = ++a + ++a;
printf("%i\n", x);

sizeof运算符(掌握)

sizeof 用来计算一个变量或者常量所占内存的字节数, sizeof是一个运算符不是函数,参与运算,优先级高于算术运算符

int a = 100 , c;
printf("%i\n", sizeof(a));  // 4
double b = 1.0;
printf("%i\n", sizeof(b));  // 8
printf("%i\n", sizeof(char)); // 1
printf("%i\n", sizeof(float)); // 4c = sizeof 10 + 10 ;
printf("%i\n", c);  // 14  , 字节数 4 + 10 等于 14

逗号运算符(掌握)

逗号也是一个运算符,
作用一:同时定义多个变量,同时初始化多个变量

int a, b ; a=10 , b = 5;

作用二,逗号运算符也有运算结果,逗号运算符取最后一次运算结果

int a = 100 , c;
c = ((1+1),(2+2),(3+3),1);
printf("%i\n", c); // 1
printf( "%i\n", ((1+1),(2+2)) ); // 4

关系运算符(掌握)

结果成立返回 1 , 结果不成立返回 0 。在C语言中,0代表假,其它数值都代表真

printf("%i\n", 10 > 9);  // 1
printf("%i\n", 10 > 11);  // 0

关系运算符优先级和结合性(掌握)

关系运算符的结合性,
不能使用关系运算符来判断区间

printf("%i\n", 10 > 5 > 2 ); // 输出 0 而不是  1  ,因为 10 > 5 等于 1 , 1 > 2 等于 0

逻辑运算符(掌握)

逻辑与 &&,一假则假 , 逻辑或 || 一真则真

printf("%i\n", (10 > 5 || 1 > 2 )); // 1
printf("%i\n", (10 > 5 && 1 > 2 )); // 0

逻辑运算符逻辑短路现象(掌握)

逻辑与遇假之后,后面的判断不再执行了,所以即使有 ++a,a的值仍然是初始值1
同样的逻辑或遇真之后,后面的判断也不再执行

int a = 1;
int num = (1 > 2) && (++num > 0);
printf("%i\n", num);   // 0
printf("%i\n", a);  // 1

三目运算符(掌握)

条件表达式 ? 结果A : 结果B
如果条件表达式的结果是真,返回A,如果条件表达式是假,返回B

int num = 1 > 2 ? "true" : "false";
printf(num); // false

运算符练习一(理解)

一、输入一个数,判断这个数是否在100~200之间?

printf("请输入一个整数:");
int num ;
scanf("%i",&num);
int res = num >= 100 && num <= 200;
res ? printf("是100~200之间的数") : printf("不是100~200之间的数");

二、表达式 6 == 6 == 6的值是多少?

int num ;
num = 6==6==6;
printf("%i",num); // 输出0 ,因为 6==6 结果是1 ,1==6,结果是0

三、用户从键盘上输入三个整数,请找出最大数?
思路:从一二中找最大的数,再用最大的比较第三个数,返回最大值

printf("请输入三个整数,用空格分隔:\n");
int num1, num2,num3;
scanf("%i %i %i",&num1,&num2,&num3);
int res = num1 > num2 ? num1 : num2;
int max= res > num3 ? res : num3 ;
printf("最大的数是 %i\n", max);

交换两个变量的值(掌握)

方式一、使用新变量空间 tmp 中转

int a=10, b=20;
printf("a=%i b=%i\n", a,b);  // 10 ,20
int tmp = a;    a = b;   b = tmp;
printf("a=%i b=%i\n", a,b);  //20 , 10

方式二、使用算术运算符

  int a=10, b=20;a = a + b;  //a = 10 + 20 ; a=30b = a - b;  // b = 30 - 20 ; b=10a = a - b;  // a = 30 - 10 ; a=20printf("a=%i b=%i\n", a,b); // 20 , 10

流程控制基本概念(理解)

数据结构,按顺序从上至下执行,选择结构,执行满足条件的代码

选择结构if第一种格式(掌握)

表达式:
if (条件表达式){
条件成立执行的语句;
}

选择结构if第二种格式(掌握)

    int a=99;if (a > 10 ){printf("a大于10");}else{printf("a小于10");}

选择结构if第三种格式(掌握)

表达式:
if(条件表达式){
条件成立执行;
}else if(条件2){
条件成立执行;
}else{
条件不成立执行;
}

   int a=90;if (a > 80 ){printf("优秀");}else if(a> 60){printf("及格");}else{printf("不及格");}

选择结构if注意点上(掌握)

if 可以省略 条件后面的大括号 {},但是只有紧随其后的第一条会受到控制

if (0)printf("1\n");printf("2\n");printf("3\n"); 输出 2,3 ,没有按条件设定那样完全不输出,第二条和第三顺序输出了

选择结构if注意点下(掌握)

比较运算,把常量放前面,避免少写了等号而没有发现

 //if(x=9) // 而变量在前,少写一个等号仍执行通过if (9=a){  //常量在前,少写了一个等号时,条件执行不通过,...}

选择结构if练习(理解)

一、从键盘输入一个整数,判断是否偶数?是的话输出YES,否则 NO

    int a;scanf("%i",&a);if(a %2 == 0) {printf("yes\n");}else{printf("no\n");}

二、接收用户输入的整数 1~7,判断星期几

    int d;scanf("%i",&d);if(d == 1) {printf("星期一\n");}else if(d == 2){printf("星期二\n");}else if(d == 3){printf("星期三\n");}...

三、根据用户输入的月份,输出对应的季节
已知: 3/4/5春,6/7/8夏 910/11秋 12/1/2冬

    int d;scanf("%i",&d);if(d >=3 && d<=5) {printf("春\n");}else if(d >=6 && d<=8){printf("夏\n");}...

选择结构if排序练习(掌握)

接收用户输入的三个整数,按升序输出?
思路:两两比较,前面的数大于后面的数,就交换两个数的位置

    int c,d,e,tmp;scanf("%i %i %i",&c,&d,&e);if(c > d){tmp = c; c =d; d = tmp;}if(c > e){tmp = c; c =e; e = tmp;}if(d > e){tmp = d; d =e; e = tmp;}printf("%i %i %i \n",c,d,e);

猜拳游戏上(理解)

用户输入一个0 ~ 2的数,系统随机生成一个0 ~ 2的数,判断用赢还是电脑赢 (0拳头,1布,2剪刀)
用时间生成一个随机数,再取余 3 ,得到 0 1 2 中的一个数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main(){int tmp;srand(time(NULL));tmp = rand() % 3;printf("%i\n",tmp);
return 0;
}

猜拳游戏中(理解)

方法一:三种情况全判断,用户赢的3种情况,0 vs 2,1 vs 0,2 vs 1 , 相等则平局,其它则用户输

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main(){int tmp,user;scanf("%i",&user);if(user==0 ||user == 1 || user ==2){srand(time(NULL));tmp = rand() % 3;printf("电脑: %i, 我:%i\n",tmp,user);if(tmp==user){printf("平局");}else if((tmp==0 && user ==2) || (tmp==1 && user==0)  || (tmp==2 && user==1)){printf("你输了");}else{printf("你赢了");}}
return 0;
}

猜拳游戏下(理解)

方法二:用加减法,已知用户赢的情况 , 0-2 = -2, 1-0 = 1, 2-1=1;,用户出的数减电脑出的数,得到的值等于 -2或1 是用户赢了,等于-1或2是输了。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main(){printf("请输入一个0~2的整数(0拳头,1布,2剪刀):");int tmp,user,s;scanf("%i",&user);if(user==0 ||user == 1 || user ==2){srand(time(NULL));tmp = rand() % 3;printf("我: %i, 电脑:%i\n",user,tmp);s = user-tmp;if( 0 == s ){printf("打平了");}else if(-2 == s|| 1 == s ){printf("你赢了");}else{printf("你输了");}}
return 0;
}

选择结构switch(掌握)

switch 结构

    printf("请输入1~7:");int d;scanf("%i",&d);switch(d){
case 1:printf("星期一\n");break;
case 2:printf("星期二\n");break;
default:printf("error ");break;}

选择结构switch注意点上(掌握)

break 是中断当前的 switch 语句,正常情况省略break会导致 case 和 default 失效,使选择执行变成顺序执行,如果多个值都执行同一个结果,则可以省略。default 可以写在任意位置,不一定要写最后

 int d = 3;switch(d){default:break;case 3:case 4:case 5:printf("春季\n");break;}

选择结构switch注意点下(掌握)

1 . case 中的值不能重复、
2 . case 不能定义新变量、定义变量要用大括号扩起来 示例:case 1:{ int num; break;} case 2:
3 . switch(n) n可以是变量或常量,但不能是常量小数,错误示例: switch(3.14)
4 . case 后面也不能是小数,错误示例:case 3.14

选择结构switch练习一(理解)

0-100分的成绩,用switch 判断学生的考试成绩是 优秀、良好、及格、还是不及格
思路: 用分数 除以 10 ,由于C语言中整数除整数得到的也是整数,所以判断 0-10 就可以了

 int score=59;switch(score / 10){default:printf("没有这个分数");break;case 0:case 1:case 2:case 3:case 4:case 5:printf("不及格\n");break;case 6:printf("及格\n");break;...}

选择结构if和switch如何选择(掌握)

if 适合区间判断,switch 只适合固定值的判断。 if 适用范围更广

选择结构switch练习二(理解)

根据用户输入的公式计算加减乘除的值

    int a,b;char e;printf("请输入运算公式(例3+5):");scanf("%i %c %i", &a, &e , &b);printf("%i %c %i = ",a,e,b);switch(e){case '+' :printf("%i",a+b);break;case '-':printf("%i",a-b);break;case '*':printf("%i",a*b);break;case '/':printf("%i",a/b);break;default:printf("输入错误 ");break;}

循环结构while(掌握)

while 与 if 的格式差不多
while格式:
while (条件表达式){
只有条件为真才执行的代码;
}

循环结构while注意点(掌握)

循环结构while练习一(理解)

计算机 1+ 2 + n 的和

    int a,b = 1,c=0;scanf("%i", &a);while(b <= a){c =  c + b;b++;}printf("1 ~ %i 的和等于 %i\n", a, c);

循环结构while练习二(理解)

1~100 之间 有多少数是 7的倍数?

    int a=0;while(7 * a <= 100){a ++;}printf("1~100之间 7的倍数有 %i个\n",a-1);

循环结构dowhile(掌握)

do while 特点,一上来先执行一次,之后判断条件是否为真,条件为真循环,条件为假中断循环。
do while格式:
do{
} while(条件表达式);

    int a=0;do{a ++;}while(7 * a <= 100);printf("1~100之间 7的倍数有 %i个\n",a-1);

循环结构while和dowhile如何选择(掌握)

循环结构for(掌握)

for 循环格式:
for ( 初始化表达式; 条件表达式; 循环后增量表达式){
条件为真执行的代码;
}
用 for 计算0-100以内 7倍数有多少

    int a=0;for(int i=1; i * 7 <= 100; i++){a ++;}printf("7的倍数有 %i 个", a); // 14 个

循环结构while和for如何选择(掌握)

循环结构for注意点上(掌握)

在 for () 括号后面加分号,代表 for() 是单独的一块,{} 也是单独的一块,所以 for 仍然循环,但是没有代码可代执行,而{} 内的内容只会执行一次。

    int a=0,i=1;for(; i <= 10; i++);{a += i;}printf("1~10的和 %i", a);  //11 错误

循环结构for注意点下(掌握)

for 循环的局部变量作用域: 当代码执行遇到 {} ,就为 {} 开辟一块内存空间,当 {} 内的变量 a 没有申明,它会在外面寻找是否有定义 int a 。当变量 a 重新申明了,它就会在当前空间给 变量 a 一个存储空间,遇到 结束符号 } 就会关闭这个空间,所以在下面继续打印 a 没有拿到内部的 777 而是继续拿了外部空间的 666
一、重新申明变量

    int a=666;{int a = 777;printf("%i\n",a); /// 777}printf("%i\n",a); // 666

二、不申明变量,改变的是外部的 a 的值,所以关闭 {} 不影响外部 a 的值

    int a=666;{a = 777;printf("%i\n",a); /// 777}printf("%i\n",a); // 777

在 for 循环中, () 中可以定义 与 {} 同名的变量,因为 () 和 {} 的作用域不同,
原因: 代码遇到 for 后开辟一个存储空间,在 for 空间中会再为 () 和 {} 开辟两个空间。
() {} 定义 相同的变量名:

    for(int i=0;i<5;i++){int i=100;printf("%i\n",i); // 最近原则,5次输出结果是 100 }

{} 可以直接使用 () 定义的变量名

    for(int i=0;i<5;i++){i=100;printf("%i\n",i); // 调用了1次,输出结果是 100}

() 定义的变量可以在 {} 内使用,因为 调用 {} 时 ()内的空间没有关闭。
但 {} 内定义 的变量不能在 ()中使用,原因在执行完 {} 后,遇到 }, 大括号 {} 的空间就释放掉了,程序再次来到 () 调用 count, count 已经释放掉没有可调用的了,所以下面代码是错的
() 不可以使用 {} 内定义的变量

    for(int i=1; i<5; count++){ // errorint count=1;printf("%i\n",i);}

【C语言】从放弃到入门-笔记相关推荐

  1. 【HTML/CSS】从放弃到入门-笔记1

    从放弃到入门1 ⇒ 从放弃到入门2 了解浏览器 浏览器和服务器(了解) 浏览器是一款软件,浏览器功能:1将网页渲染出来给用户查看,2让用户通过浏览器与网页交互 不同浏览器的内核不同,渲染效果会有小的差 ...

  2. 1C语言 从放弃到入门-王桂林-专题视频课程

    <1>C语言 从放弃到入门-1052人已学习 课程介绍         C语言 从放弃到入门 课程收益     所有对C语言有入门恐惧的人. 讲师介绍     王桂林 更多讲师课程     ...

  3. 【HTML/CSS】从放弃到入门-笔记2

    从放弃到入门1 >> 从放弃到入门2 CSS三大特性练习(理解) div和span标签(掌握) DIV配合CSS完成网页的搭建 span常用来配合修改局部样式 区别:DIV一个容器级别的标 ...

  4. python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程

    本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...

  5. C语言入门笔记代码(第二天)

    C语言入门笔记代码如下所示: 主要包括: 1.整数上溢,浮点上溢和下溢: 2.如何使用转义序列: 3.scanf()读取机制: 4.strlen()函数与sizeof语句区别: 5.关键字:const ...

  6. 20210725整理的比较全面的C语言入门笔记!

    https://www.eet-china.com/mp/a65253.html 整理的比较全面的C语言入门笔记! 一口Linux 2021-07-25 10:24 277浏览3评论1点赞 C语言一经 ...

  7. [R语言] ggplot2入门笔记4—前50个ggplot2可视化效果

    文章目录 通用教程简介(Introduction To ggplot2) 4 ggplot2入门笔记4-前50个ggplot2可视化效果 1 相关性(Correlation) 1.1 散点图(Scat ...

  8. [R语言] ggplot2入门笔记2—通用教程ggplot2简介

    文章目录 通用教程简介(Introduction To ggplot2) 2 ggplot2入门笔记2-通用教程ggplot2简介 1. 了解ggplot语法(Understanding the gg ...

  9. 十年公务员转行IT,自学AI三年,他淬炼出746页机器学习入门笔记

    整理 | Jane 编辑 | Just 出品 | AI科技大本营(ID:rgznai100) 近期,梁劲传来该笔记重大更新的消息.<机器学习--从入门到放弃>这本笔记的更新没有停止,在基于 ...

  10. html缩进快捷键_HTML 入门笔记

    HTML 入门笔记 HTML (HyperText Markup Language) 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言. HTML 可复杂.可简单,一切取决于开发者. 它 ...

最新文章

  1. 1968年12月9日,恩格尔巴特公开演示了世界上第一个鼠标盒子
  2. 中南大学计算机复试题,中南大学计算机05年复试试题
  3. python一个富翁试图与陌生人做一笔生意_VB实验报告一
  4. Codeforces Round #599 (Div. 2) E. Sum Balance 图转换 + 子集dp + 环
  5. File Io 删除类中的引用
  6. Android开发指南(41) —— Searchable Configuration
  7. 《打造七星级团队》观后感
  8. 数据结构之二叉查找树介绍
  9. IntelliJ IDEA导出jar包
  10. 毕业论文页眉页脚页码插入
  11. matlab进行多项式展开
  12. 常用python编程软件-现在编程软件有哪些?常用是哪一种?
  13. 我总结的吊炸天的js写法风格
  14. mac rzsz 不弹窗问题
  15. ​现代计算机的雏形-微型计算机MCS-4
  16. oracle ora-01403
  17. bzoj4716: 假摔
  18. com.netflix.discovery.DiscoveryClient - DiscoveryClient_UNKNOWN/
  19. Centos6安装和使用ClamAV杀毒软件
  20. 电商平台数据可视化如何实现

热门文章

  1. 芯片之路: 海思半导体前世今生
  2. 一键清理电脑垃圾小程序
  3. 机器码、序列号、认证码、注册码的生成算法(四)
  4. MySQL最新版MySQL8.0百度云下载
  5. Java多线程编程-停止线程 暂停线程
  6. html点菜系统显示几号桌,如果一定要坐你会坐几号桌 1到4号桌你会如何选择
  7. PyMuPDF 拼版(一)
  8. win7家庭版计算机桌面,Win7 home basic家庭普通版显示桌面图标的方法
  9. WIN7镜像中增加USB3.0驱动和语言包
  10. 计算机超级终端 串口设置,win10系统超级终端软件连接串口设备的处理技巧