C语言学习之路

第一章 前期准备

1.1 如何学习一门技术

第一步:主要是掌握概念方向, 1. 定义 
                   2.解决了什么问题
                   3. 知道同类技术有哪些
                   4. 了解该技术的主要组成部分
                   5. 思考该技术为什么会出现
第二步:学语法,学用法:1. 视频教程
                     2. 快速上手教程
                     3. 看别人写的人们博客
                     4. 看权威的书,官方文档(硬着头皮看)
                     5. 多思考,多提炼,多总结,写写博客
第三步:局部学习,小型实战,搭环境:局部练习:
第四步:上手实际项目或开源项目
第五步:造轮子、手撸代码                 

1.2 利用Visual Studio创建项目

1. 点击登录->选择开发设置Visual C++->选择主题->创建新项目->选择空项目C++->源文件,添加,新建项``->选择C++文件,名称test.c,创建好之后可以按ctrl和鼠标滚轮改变字体。

点击登录->选择开发设置Visual C++->选择主题->创建新项目->选择空项目C++![在这里插入图片描述](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

11添加链接描述

//#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 = 65535int 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,23,4,5,67
//枚举关键字--enum
//
int main()
{
   int arr[MAX]={0};
   print("%d\n",MAX)
   return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值