第一章 前期准备
1.1 如何学习一门技术
第一步:主要是掌握概念方向, 1. 定义
2.解决了什么问题
3. 知道同类技术有哪些
4. 了解该技术的主要组成部分
5. 思考该技术为什么会出现
第二步:学语法,学用法:1. 视频教程
2. 快速上手教程
3. 看别人写的人们博客
4. 看权威的书,官方文档(硬着头皮看)
5. 多思考,多提炼,多总结,写写博客
第三步:局部学习,小型实战,搭环境:局部练习:
第四步:上手实际项目或开源项目
第五步:造轮子、手撸代码
1.2 利用Visual Studio创建项目
1. 点击登录->选择开发设置Visual C++->选择主题->创建新项目->选择空项目C++->源文件,添加,新建项``->选择C++文件,名称test.c,创建好之后可以按ctrl和鼠标滚轮改变字体。
![在这里插入图片描述](https://img-blog.csdnimg.cn/af3be2f4c4e243e6966de0fb42afc4e6.png
![在这里插入图片描述](https://img-blog.csdnimg.cn/7aed0a9e2dd3485ab55b3a27c5f97a99.png
第二章 程序
2.1 测试程序能不能运行
#测试环境能不能写c++代码
输出以下黑窗就可以运行代码
//#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
//printf("hehe\n");
int a = 0;
//scanf("%d", &a);
printf("%d\n", a);
return 0;
}
2.2 不能使用scanf函数
1.输入代码,2.点击调试里面的开始执行(不调试)或者ctrl+f5,或者fn+ctrl+f5,3.输出错误
错误输出:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. test_12_5 C:\code\test_12_5\test_12_5\test.c 8
解释输出:scanf这个函数或者变量不安全,这个使c语言提供的函数,考虑用scanf_s来替换,这个使微软的VS编译器提供的。如果消除这个错误,请使用_CRT_SECURE_NO_WARNINGS(_crt_secure_no_warnings),就想使用c语言的scanf不想使用微软的scanf_s,也可以使用,但是这两个函数有区别,要研究一下怎么使用微软的scanf_s函数。如果继续消除错误的话,在页面最前方添加#define _CRT_SECURE_NO_WARNINGS 1
//#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
//printf("hehe\n");
int a = 0;
scanf("%d", &a);
printf("%d\n", a);
return 0;
}
第三章 课堂笔记
3.1 什么是C语言和新建项目
3.2 解决窗口一闪而过的问题
3.3 char,short,int,long,long long,float,double占用内存大小
3.4 语法错误
第四章 课堂笔记代码
4.0 本章总结
总结:1. 什么是C语言:C语言就是由低级语言向高级语言演变的过程中产生的一门语言。低级语言是二进制语
言,然后出现了汇编,助记符,B语言,C语言。而语言由低级向高级发展的过程中,让语言变得越来
越容易使用。c语言在发展的过程中,也由不成熟到成熟,有了C语言的标准,叫ANSI.C。
2. 第一个C语言的程序,什么叫main函数,使用printf函数需要引入#include <stdio.h>
3. 有各种各样的数据类型,每一种的数据类型的大小是什么样子的。为什么同一种整型类型int又细分成了好几种类型?
4. 变量:类型其实是用来创建变量的,变量又分为局部变量和全局变量,局部变量合全局变量又提到了生命周期和作用域。
#define _CRT_SECURE_NO_WARNINGS 1
//#包含一个叫stdio.h
//std:标准standard input output
#include <stdio.h>
//20
//55.5小数,浮点数
//int main()//主函数-程序的入口-main函数有且仅有一个
//{
// //完成任务
// //在屏幕上输出hello word
// //函数 print 打印 function 函数—printf打印函数
// //printf库函数-C语言本身提供给我们使用的函数
// //使用别人的东西-需要给别人打招呼用这个函数
// //#include #是指令形式,include包含
// printf("hehe\n");//\n表示换行printf("打印内容")
// printf("hehe\n");
// printf("hehe\n");
// printf("hehe\n");
// // char //字符数据类型
// // short //短整型
// // int //整形
// // long //长整型
// // long long //更长的整形 C99标准提出
// // float //单精度浮点数
// // double //双精度浮点数
// // %d -打印整型
// // %c -打印字符
// // %f–打印浮点数字-打小数
// // %p –以地址的形式打印
// // o% - 打印16进制数字
//
//
// char ch = 'A';//内存 用字符类型创建一个变量叫ch,这个变量ch向内存申请了一份空间,这个空间名字叫ch
//
// printf("%c\n",ch);//打印字符格式的数据,以字符的形式打印ch
//
// //short int :短整型
//
// //int 整型
// int age = 20;//2 16 2 2^16-1
// printf("%d\n",age);//%d打印整型十进制
//
// //long长整型
// long num = 100;
// printf("%d\n", num);
//
// //float
// float f = 5.0;
// printf("%f\n", f);
//
//
// //double
// double d = 3.14;
// printf("%lf\n", d);
//
//
// //sizeof什么的大小
// printf("%d\n", sizeof(char));//1
// printf("%d\n", sizeof(short));//2
// printf("%d\n", sizeof(int));//4
// printf("%d\n", sizeof(long));//4
// printf("%d\n", sizeof(long long));//8
// printf("%d\n", sizeof(float));//4
// printf("%d\n", sizeof(double));//8
// // 1 2 4 4 8 4 8
// short int age = 20;//2 16 2 2^16-1 = 65535 比 int age更加合理,节省空间
// printf("%d\n", age);//%d打印整型十进制
//
// //年龄
// //20
// short age = 20;//向内存申请2个字节=16bit位,用来存放20
// float weight = 95.6f;//向内存申请4个字节,用来存放95.6
//
//
// //int num1 = 10;
//
// return 0;
//}
//int是整型的意思
//main前面的int表示main函数调用之后返回一个整型值
//int main()
//{
// return 0;//返回0
//}
//void main()//过时的写法
//{
//
//}
//int num2 = 20;//全局变量-定义在{}(代码块)之外的变量
//int main()
//{
// int num1 = 10;//局部变量-定义在代码块({})内部
// return 0;
//}
//int a = 100;
//int main()
//{
// int a = 10;
// //局部变量和全局变量的名字建议不要相同-容易产生误会,产生bug
// //当局部变量和全局变量的名字相同的时候,局部变量优先
// printf("%d\n", a);
//
// return 0;
//}
//输出10
//int a = 100;
//int main()
//{
// {
// int a = 10;
// }
// //局部变量和全局变量的名字建议不要相同-容易产生误会,产生bug
// //当局部变量和全局变量的名字相同的时候,局部变量优先
// printf("%d\n", a);
//
// return 0;
//}
//输出错误:严重性 代码 说明 项目 文件 行 禁止显示状态
//错误 C2065 “a” : 未声明的标识符 初识C语言(1) F : \嵌入式学习资料\1_初识C语言(1)\初识C语言(1)\初识C语言(1)\test.c 123
//int a = 10;
//int main()
//{
//
// //局部变量和全局变量的名字建议不要相同-容易产生误会,产生bug
// //当局部变量和全局变量的名字相同的时候,局部变量优先
// printf("%d\n", a);
//
// return 0;
//}
//int main()
//{
// int num1 = 0;
// int num2 = 0;
// int sum = 0;
// // //c语言语法规定,变量要定义在当前代码块的最前面
// //输入数据-使用输入函数
// scanf("%d%d", &num1, &num2);
// //scanf("%d%d", & num1, & num2);//取地址符号
//
// //c语言语法规定,变量要定义在当前代码块的最前面
// sum = num1 + num2;
// printf("sum = %d\n", sum);
// return 0;
//}
//{
// int num1 = 0;
// int num2 = 0;
// //输入数据-使用输入函数
// scanf("%d%d", &num1, &num2);//取地址符号
// int sum = 0;
// //c语言语法规定,变量要定义在当前代码块的最前面
// sum = num1 + num2;
// printf("sum = %d\n", sum);
// return 0;
//}
//int main()
////{
//// int num = 0;
//// printf("num = %d", num);
////}
//
//{
// {
// int num = 0;//它的作用域是这个大括号
// }
// //int num = 0;
// printf("num = %d", num);
//}
//int main()
////{
//// int num = 0;
//// printf("num = %d", num);
////}
//
//{
// int num = 0;//它的作用域是这个大括号
// {
// printf("num = %d", num);
// }
// //int num = 0;
//
//}
//int global = 2020;
//
//void test()
//{
// printf("test()--%d\n", global);
//
//}
//
//int main()
//{
// test();
// printf("%d\n", global);
// return 0;
//}
//int main()
//{
// //未声明的标识符
// //声明extern外部符号的
// extern int g_val;
// printf("g_val = %d\n", g_val);
// return 0;
//}
//int main()
//{
// { //a的生命周期只在这个大括号内,出了括号声明周期截至
// int a = 10;
// printf("a = %d\n", a);
// }
//}
//全局变量的声明周期是整个程序的生命周期
4.1 常量和变量
4.1.1 字面常量
//没有问题
int main()
{
int num = 4;
//字面常量
//3;
//100;
//3.14;//
}
int main()
{
int num = 4;
printf("%d\n",num);
num = 8;
printf("%d\n",num)
//字面常量
3;
100;
3.14;//
}
4.1.2 const修饰的常量
//有问题
//让num不变,const修饰的常变量
int main()
{
//const修饰的常变量
//const -常属性
const int num = 4;
printf("%d\n",num);
num = 8;//由于const修饰了num,那么num为常变量,不可以更改初始值。
printf("%d\n",num)
}
//没有问题
//num具有常属性,但是它还是一个变量,我们用代码验证。
int main()
{
//const修饰的常变量
//const -常属性
int arr[10] = {0};
const int num = 4;
printf("%d\n",num);
//num = 8;//此处,在前面const已经声明const为常变量,这里num不可以赋值。
printf("%d\n",num);
//字面常量 3 100 3.14;
return 0;
}
//有问题
//num具有常属性,但是它还是一个变量,我们用代码验证。
int main()
{
//const修饰的常变量
//const -常属性
int n =10;
int arr[n] = {0};//n是变量,arr[]里面只能是常量
const int num = 4;
printf("%d\n",num);
num = 8;
printf("%d\n",num);
//字面常量 3 100 3.14;
return 0;
}
//有问题
int main()
{
//const修饰的常变量
//const -常属性
int n =10;
int arr[n] = {0}; //n是一个变量,而arr[]只能填一个常量
const int num = 4;
printf("%d\n",num);
num = 8;
printf("%d\n",num);
//字面常量 3 100 3.14;
return 0;
}
//有问题
int main()
{
//const声明的常变量
//const -常属性
const int n =10;//n是变量,但是又具有常属性,所以叫n为常变量。
//n是一个变量,而arr[]只能填一个常量 ,const修饰也不行
int arr[n] = {0};//n在前面用const声明了,它是常变量,而arr[]只能填一个常量
n = 20;//n在前面用const声明了,它是常变量,是不能改的
const int num = 4;
printf("%d\n",num);
num = 8;
printf("%d\n",num);
//字面常量 3 100 3.14;
return 0;
}
4.1.3 #define定义的常量
//警告
#include<stdio.h>
//define定义的标识符
#deine MAX 10//我要定义一个符号,符号为10
int main()
{
int arr[MAX];//未引用局部变量,通常情况下,定义arr[MAX]要赋值。
return 0;
}
//没有问题
#include<stdio.h>
//define定义的标识符
#deine MAX 10//我要定义一个符号,符号为10
int main()
{
int arr[MAX]={0};
print("%d\n",MAX)
return 0;
}
4.1.4 枚举enum声明的常量
#include<stdio.h>
//枚举常量,枚举一一列举
//性别:男,女,保密
//三原色:红,黄,蓝
//星期:1,2,3,4,5,6,7
//枚举关键字--enum
//
int main()
{
int arr[MAX]={0};
print("%d\n",MAX)
return 0;
}