最近我在干什么?
c:1.推进到指针 结构体 分支语句
2.递归还是处于递进去归不出来的窘境 争取早日将递归用到求最大公约数
python:很久没碰了 还是停留在切片
这周 血的教训:
1. 在运用变量时候 要避免变量命名冲突,当全局变量和局部变量冲突是,局部变量优先
2.在for循环时,各类表达式间要用分号隔开,而在for()后不加分号,因为在c中分号也为语句---空 语句,会使得for循环下的大括号内内容不属于for循环,导致报错
3. 在if else中如果有多条语句则需要用大括号,即表示代码块,同时注意缩进使代码清晰
同时表达式不同同时出现例如(18<age<60)这种判别式,只能有(18<age;60>age)这种写法,这涉及到了真 假 1 0问题. //当age==61时,61>18为真,左边为1,同时1<60右边也为真,则使得该判别表达式直接成立并执行了下方语句了,但此时61显然不属于 18<age<60之间。
4. 在switch中 整型常量表达式为语句项的入口,必须整型且常量,字符也可以
且各个语句项需用break打断,否则会持续运行
#include <stdio.h>
int main ()
{
int day = 0;
scanf ("%d",&day);
switch (day)
{
case 1:
case 2:
case 3:
printf ("上课\n");
case 4:
printf ("上课\n");
case 5:
case 6:
printf ("周末");
break;
case 7:
printf ("周末");
break;
default:
printf ("输入值错误");
break;
}
return 0;
}
因为在几个语句项目中无break打断,则会出现 多重运行;此外 switch 允许被嵌套使用。
5. static(静态的)
1)修饰局部变量:修饰局部变量 改变局部变量的生命周期 (本质改变了变量的存储类型)局部变量不会销毁 //改变储存类型 使栈区转化为静态区
#include <stdio.h>
void test ()
{
static int a = 1;
a++;
printf ("%d\n",a);
}
int main ()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
输出结果为2~11;若static不修饰局部变量,则每次a都会归为1,则输出结果为10个2!
2)static修饰全局变量(使得这个全局变量只能在自己的源文件中使用,其他源文件不能使用)(全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰之后,就变成内部链接属性,其他源文件就不能链接到这个静态的全局变量了)
3)static修饰函数 (使得函数只能在自己所在的源文件内部使用,不能再其他源文件内部使用,将外部链接属性变成了内部链接属性)
------------------------------------------------------------------------------------------------------------
以上就是本周学的了,非科班,内容有限,望见谅!
有错误请直接指出,万分感恩!