本帖最后由 niucaidi 于 2021-7-12 18:24 编辑
正向基础
什么是声明变量
//全局变量的声明
int a,b,c; //全局变量的声明
void Fun()
{
a = 10; //全局变量的赋值
b = 20;
c = a;
}
void Fun()
{
int a,b,c; //局部变量的声明
a = 10; //局部变量的赋值
b = 20;
c = a;
}
总结:声明变量的宽度 和存储格式 由数据类型 决定.计算机什么时候分配内存,取决于变量的作用范围,如果是全局变量,在程序编译完就已经分配了空间,如果是局部变量,只有所在的程序被调用的时候,才会分配空间.全局变量 如果不赋初始值 ,默认 是0 ,但局部变量在使用前一定要赋初值.
C语言的类型转换在汇编中是如何执行的
反映在C语言中
char i = 0xFF;
short k = 0xFFFF;
int h = 0xFFFFFFFF;
反映再汇编中
MOV AL,0XFF
MOVSX CX,AL
MOV AL,0X80
MOVSX CX,AL
反映在C语言中
unsigned char i = 0xFF;
unsigned short k = 0x00FF;
unsigned int h = 0x00000000FF;
反映再汇编中
MOV AL,0XFF
MOVZX CX,AL
MOV AL,0X80
MOVZX CX,AL
C语言表达式的特点
- 表达式无论多么复杂都只有一个结果
- 不与程序中其他元素有任何关联的表达式也可以编译通过,但并不生成汇编代码,表达式只有与需接受赋值的对象或其他流程控制语句配合使用才有意义
- 如果表达式中有宽度不同的变量,结果的宽度将与宽度最大的变量一致
- 如果表达式中同时存在有符号数和无符号数,表达式的运算结果将转换为无符号数
C语言循环体
- while循环
int main()
{
int i[10] = {0};
int t = 0;
while(t<10)
{
printf("%d\n",i[t]);
}
}
- do...while循环
int main()
{
int i[10] = {0};
int t = 0;
do{
printf("%d\n".i[t]);
}while(t<10);
}
- for循环
int main()
{
int i[10] = {0};
int t = 0;
for(t = 0;t < 10;t++)
{
printf("%d\n",i[t]);
}
}
continue :跳过本次循环,进入下一次循环
break :结束整个循环
结论:
- 三个循环体可以互相转换,任何一种循环可以实现的功能都可以用另外两种循环实现
- 三个循环体在正向编程中难易程度从难到易排序为:1.do..while、2.while、3.for
- 三个循环体的执行效率从高到低排序依次为:1.do..while、2.while、3.for
本节作业:
1、将两个变量的值交换.
2、将一个数组中的数倒序输出.
3、找出数组里面最大的值,并返回
4、将数组所有的元素相加,将结果返回
5、将两个等长数组相同位置的值相加,存储到另外一个等长的数组中
6、写一个函数int prime(int x),如果x是素数返回值为1,否则返回0。
7、俩俩比较数组的值,将最大的一个存储到数组的最后一个位置
8、编写程序实现一个冒泡排序的算法.
9.判断数组是否是对称的,如果是返回1,不是返回0.
|