Visual Studio 2022,C++直接可以写C,将文件后缀直接改为.c。
编辑->>编译->>连接->>运行
printf
scan
break跳出循环,continue结束本次循环。
#include <stdio.h>
#include<math.h>
float totalHeight(float);
int main() {
float height,sum_height;
printf("请输入小球降落高度:");
scanf_s("%f", &height);
sum_height = totalHeight(height);
printf("共经过%f米\n",sum_height);
return 0;
}
/*求小球降落总路程*/
float totalHeight(float h) {
int i;
float sum = 0.0;
for (i = 1; ; i++) {
sum += h;
h = h / 2;
if (i == 10) break;
sum += h;
}
return sum;
}
· auto:自动变量,默认的,auto i <==> int i;,动态存储变量,调用函数时分配内存,返回主函数后,自定变量的存储区被释放回操纵系统。
· register:寄存器变量,与auto类似,存储位置在寄存器,特殊操作系统变量用,应用程序一般不用。
· static:静态变量,一旦创建程序生命周期都存在,分配的内存空间也固定。
· extern:外部变量,指明变量已在其他文件中定义,编译系统不为它们另外分配空间了。
使用递归目的简化程序,便于阅读。递归有许多缺点。大量递归会占用处理器很多时间和大量内存。从时间上看调用和额外工作要占用处理器时间;从空间上看,每次递归调用都会建立函数1个副本,占用大量栈内存.
数组的声明:int height[10];
初始化:int a[5]={1,2,3,4,5};
函数参数用数组
字符串
char str[20]={‘h’,‘e’,‘l’,‘l’,‘o’};
char str[10]=“hello”;
省略长度:char str[]=“hello”;
字符串的get()put()strcpy()strcmp()strlen()方法。
将变量所占内存的首字节地址称为变量的首地址也称变量的地址。
重点理解
声明指针变量后,指针未初始化,指向的内存区域不存在,则称为"野指针"。
可以练一练
***编译预处理与宏?????????????
大端和小端
环境变量,命令行,第8章…
全局变量
结构指针了解一下
别名
动态内存管理由操纵系统完成,都在头文件stdlib.h中,涉及的内存块单位是字节,标准库提供了4个函数:
- 分配内存块的malloc()和calloc()
- 改变内存块大小的函数realloc()
- 释放内存块的函数free()
文件的读写,定位,检测。