一、Hello World
创建vs项目:
文件->新建->项目->Visual C++ -> Win32 控制台应用程序 ->命名
hello word:
int main(){ //主入口
printf("Hello word"); //打印到控制台
system("pause"); //暂停 使用system需要添加头文件#include <stdlib.h>
return 0;
}
注释代码的快捷键 Ctrl+k+c
二、C基本语法
- 1.基本数据类型:
//基本数据类型
//int short long float double char bool
//short %d
//long %ld
//float %f
//double %lf
//char %c
int main(){
int i = 1;
printf("%d\n",i); //%d 此处代表int类型的i , \n 表示换行的意思(控制台打印一个1后换行)
float f = 23.3;
printf("%f\n",f); //%f 此处代表folat类型的f
system("pause"); //停住控制台
return 0;
}
- 2.标准的输入函数scanf() 与区地址运算符&
int main(){
int n;
printf("请输入一个int数据:\n");
printf("地址:%#x\n",&n);
//打印n的地址
// scanf()控制台输入语句
//%d 需要一个int 或者short 类型的数据
//&n 取n这个变量的地址
scanf("%d", &n); //从控制台读取一个数据写入到内存里面
printf("%d\n",n);
system("pause");
return 0;
}
- 3.数组定义
//1.必须指定数据类型
//2.必须定义的时候指定数组长度 分配内存空间
int intArray[10];
float fArray[10];
- 4.数组定义错误示范:
//错误一:
//使用scanf获取N的值不能定义数组,因为scanf函数是在运行的时候才获取值,在预编译的时候n是没有值的 数据的定义一定要确定的值才能分配内存空间,所以就不能通过。
int n;
scanf("%d",&n);
int a_array[n];
//错误二:
//也是不能编译通过:因为n也是只有在运行的时候才有值
int n = 10;
int a_array[n];
//正确示范:
//const修饰int n 之后就能够编译成功,因为const 相当于java中的static ,将n定义在了静态内存中。
const int n = 10;
int a_array[n];
- 5.控制流程语句
//流程控制语句和java是一样的
for if switch while break contiue
三、错误笔记
1.编译时出错
出现错误:_CRT_SECURE_NO_WARNINGS
警告解决:
右键项目根目录->项目->属性->C/C++ ->预处理器->预处理器定中添加 _CRT_SECURE_NO_WARNINGS关闭这个预定义
四、使用技巧
1.查看内存工具的使用(断点的时候->调试->窗口->内存->)
五、知识要点
1. 为什么定义数组的时候一定要指定数组长度?
C语言中定义数组的时候必须把数组定义在一块连续的内存空间,所以我们在预编译阶段就必须计算出需要 使用的内存的大小,这样才能够在内存中找到一块能够连续的空间存放数组数据,如果需要的内存超过了计算机能够存放的剩余内存就会出现 栈(stack)溢出。
2. 数组的存储限制
数组是存储在stack栈中,stack的大小是有限制的,好像是 1M ,并且我们不需要手动去释放内存,计算机会自动帮我们释放,如果需要定义更大的数组我们就需要动态申请,动态申请的数字存放在堆内存中,并且我们需要手动释放内存。