【VS】如何解决VS编译器scanf报错问题
问题来源当我们使用vs编译器编译c语言代码,并需要用到一些非常常用的库函数的时候(如scanf) vs编译器通常会报出如下错误 有的时候即便报错了,程序也可以正常运行。但有的时候就会同图中一样,程序无法运行!这时候就头大了。 出现这个错误的原因是vs编译器认为这些库函数是“不安全的”(我可真谢谢你,担duo心guan那xian么shi多,微软) 解决方法解决这个报错问题的方法有两种 1.使用_s函数步骤如图所示,我们可以在库函数后面加一个_s,这时候vs就会把它认为是“安全的函数”,程序就可以正常运行了。 12double m;scanf_s("%lf",&m); ...
【C语言】二级指针
二级指针什么是二级指针?我们通常使用的int*p就是一个一级指针,而二级指针存放的变量就是一个一级指针代码示例如下: 123456789int main(){ int a =10; int*pa= &a; //有两个*号 的原因 int ** ppa= &pa;//int*是代表变量pa的类型,*ppa表明这是一个指针变量 return 0;} 这里面pa是指针变量,一级指针 ppa是二级指针变量,&pa取出pa在内存中的起始地址 如图所示 小结简单的说,指针变量也是变量,变量就有属于 ...
【C语言】野指针是什么?指针在什么情况下会出错?
@toc 什么是野指针?概念︰野指针就是指针指向的位置是不可知的(如:随机的、不正确的、没有明确限制的) 说人话就是:野指针是错误的指针引用形式,通常有以下几种情况 指针未初始化 越界访问 指针指向的空间已释放 悬垂指针(dangling pointer):是指在程序中仍然存在,但不再指向有效内存地址的指针。当指针指向的对象被释放或销毁后,指针仍然保留着先前所指向的内存地址,这时指针就成为悬垂指针。 1.指针未初始化这个概念非常容易理解,同变量一样,指针同样需要我们的初始化 123//初始化指针int a = 10;int*p = &a; 指针未初始化 通常是以下情况 12345 ...
【VS】如何下载VS2019并初始化C/C++环境
VS的全称是Visual Studio,和vscode不是一个东西,可不要下错了哦。 1.下载,百度Visual Studio,去官网下载即可一定要认准官网,官网,官网!链接:https://visualstudio.microsoft.com/zh-hans/vs/ 作为初学者的我们,下载第一个免费的community社区版本即可! 目前最新的版本是vs2022,也是一样的下载和安装方式,依旧可以参考本文操作,点击community版本下载即可。 2.基本配置下载CPP开发包选择适用C++的桌面开发就可以了,右侧弹出的选项不需要修改。 视图开发设置选择常规,主题建议选择黑色。黑色的主题 ...
【C语言】数组练习题分享
好久没记录(氵)博客了,今天记录一下昨天学习的数组练习题中的内容 数组练习题[TOC] 昨天学习的练习题挺多的,下面只记录了几个我个人认为比较重要和典型的内容 (1)错误的引用数组题目: 1int arr[10]={0}; 下面错误的引用方式是: A. arr[0]=1 B.arr[0]=5*2 C. arr[10]=2 D.arr[1]=arr[2]*arr[0] arr[10]代表数组中有10个元素,但是arr[10]的引用是下标,指第11个元素 这超出了 ...
【C语言】童年经典游戏-扫雷
想必屏幕前的你,肯定玩过windows XP系统自带的那个游戏,扫雷 回想当年,我根本没看懂这个游戏是怎么玩的 比起扫雷,三维弹球对我更有吸引力 跑题了 本篇博客就让我们一起来试试,如何通过C语言代码,制作出一个“扫雷游戏se” 1.游戏程序主函数在编写这类游戏代码时,我们要用到的主函数基本是一致的 扫雷游戏的主函数和猜数字游戏的主函数相差很小 小白必学!简单的C语言应用==>猜数字游戏 123456789101112131415161718192021222324252627282930void menu()//简易目录{ printf("*** ...
【C语言】变量的作用域和生命周期
变量的作用域和生命周期[TOC] 1.全局变量和局部变量定义在代码块外部的是全局变量 定义在代码块内部的是局部变量 什么是代码块? 12345//这是代码快外部int main(){//这是代码块内部} 实际上用int main来演示是不太对的,实际使用的时候我们定义变量是在int main内部定义的 下面这个例子更加清晰明了 123456789int main(){ int i = 0;//这是代码块外部-i全局变量 for(i=0;i<10;i++) {//代码块开始 int j=0;//这是代码块内部-j局部变量 for( ...
【C语言】排序三个输入的数字
如何将输入的3个数字排序并打印出来@[TOC] 承接上篇博客中输出数组内元素最大值的内容 本篇博客向大家分享如何将我们输入的三个数字进行大小排序并打印出来 1.scanf函数1234567int main(){ int a = 0; int b = 0; int c = 0; scanf("%d%d%d", &a, &b, &c);} 既然需要输入,那就要用到scanf函数来接受我们输入的数字 要使用指针变量,因为这里的scanf需要改变我们的a,b,c scanf的头文件是 <stdio.h> 2.tmp盒子相 ...
【C语言】如何产生数组最大值
产生数组最大值@[TOC] 今日风和日丽,是个写(水 )博客的绝佳时机 和大家分享一串C语言中产生数组中的元素的最大值的代码 实现方式很简单,我们需要用到for循环和if语句 1234567891011121314151617#include <stdio.h>int main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//数组初始化 int max = 0;//设置一个最大值 int i = 0; int sz = sizeof(arr) / sizeof(arr[0]);//计算数组元素个数 for (i = ...
【C语言】冒泡排序
冒泡排序@[TOC] 无内鬼,直入主题! 冒泡排序的思想核心是:比较两两相邻的元素,并且可能的话需要交换 说人话就是 把原本是9,8,7,6,5,4,3,2,1,0的数组 变成0 ,1,2,3,4,5,6,7,8,9 也可以把无序的数组排列为有序(从小到大or从大到小) 基本的流程如下图: 同时我们可以计算出,0·9这十个数字,重新排列完需要循环9次 也就是N个数字需要N-1趟的排列 代码实现说完了原理,还是需要敲代码来实现 “老铁们int main return 0走一波!” 12345678#include<stdio.h>int main(){ int arr[] ...