自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 关于eclipse导入项目出现红色叉或者红色感叹号的各种处理方法(包括报错Multiple markers at this line)

1. java文件导入后直接显示这个错误或者各种奇怪的报错(反正文件中的代码并没有错误);2.甚至java文件中并没有任何报错,只要点运行就会直接终止运行;3.还有导入后汉字注释的地方都变成了乱码;4.还有其他各种导入后奇怪的问题,反正是导入后啥都没干就出现了红色感叹号或者红色叉叉;(看到都想吐)处理方法:1.更换jdk版本,不过相信大家并不是因为此错误所导致,因为相信您看到此处时,已经将jdk更换了无数次而且并不奏效;2.更换Tomcat版本,相信大家也是检查这个无数遍了且并无卵用;......

2022-08-09 01:59:45 8444 1

原创 eclipse-kepler-SR1-4.3.1版本下载

eclipse-kepler-4.3.1版本开普勒下载链接

2022-08-08 13:53:51 404 1

原创 总结解决 No suitable driver found for jdbc:mysql//localhost:3306/ 问题的解决方案,各种情况都已囊括,希望可以帮助到有需要的各位

No suitable driver解决方案

2022-07-26 13:34:39 11824

原创 定义数组存入字符串与定义指针指向字符串常量的区别

定义数组存入字符串,是在栈区开辟空间存入字符串。每次定义一个数组就算存入的是相同的内容都会在栈区重新开辟空间重新存入字符串,也就是说,虽然字符串内容相同,但是存入字符串的空间是不一样的。而定义指针指向字符串,是在数据区开辟空间存入字符串......

2022-05-22 02:38:08 180

原创 利用函数实现模块化程序设计

Rand_Ar.h#ifndef RAND_AR_H#define RAND_AR_Hextern void Swap_Int(int* ap, int* bp);extern bool Init_Ar(int* br, int n);extern bool Init_Range_Ar(int* br, int n, int ran);extern void Print_Ar(int* br, int n);extern void BubbleS...

2022-05-01 20:40:23 321

原创 设计一个 加减乘除 计算器程序

第一步,设计函数流程图。第二步,设计count.h头文件,用以声明函数,可以让其他 .c 文件进行引用。第三步,因为count.h文件声明了函数,所以要用count.c文件进行对函数的定义。首先是各个运算符的运算函数:然后定义counter函数去调用各个运算函数:改用switch语句会更加简洁:但是还有两个问题没有解决:1、假如输入错误的运算符,show_sum函数还是会继续调用。2、假如b为0要另外处理。第四步,建立test.c文件,定义ma....

2022-04-27 01:10:58 3811

原创 关于源文件的#define重复引用的问题

A.h,B.h,C.h为头文件(.h文件是C语言和【C++】语言的头文件,一般在【.h】类的头文件里面只放入函数声明,宏定义,函数原型,而具体的实现在【.cpp】文件里面。)Test.c为源文件

2022-04-25 01:07:15 2211

原创 ifndef/define/endif的使用

ifndef/define/endif:简而言之就是避免头文件被重复引用。(ifdef/define/endif是已定义的宏为真,ifndef/define/endif是未定义的宏为真)在一个大型软件工程编写code,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。如编写头文件ArrayList.h在头文件开头写上两行:#ifndef _Array_List_

2022-04-23 18:31:35 4096

原创 数组,指针与函数的关系

数组作为形参时,假如数组传入到函数的时候,是系统分配栈帧给形参然后复制整个数组的话,会导致对时间和空间的浪费,所以假如形参是数组,数组名会退化成指针(指向首元素的地址)。 因为把数组作为形参会把数组名退化成指针,而退化之后就会丢失掉它的大小属性,所以假如调用的函数会使用到数组大小 n 的话,要记得:把数组作为形参的话,要同时把数组大小 n 也传给函数。......

2022-04-22 01:00:31 132

原创 数组与指针的关系

数组名有两个属性一,数组元素的类型二,数组元素的个数(数组的大小)其中,在sizeof语句中,数组名是代表整个数组的意义除了sizeof语句外,其他语句中出现的数组名都代表的是数组首元素的地址,即作为指针使用。输出数组第i+1个元素,有两种方式:假如定义了数组名为ar,定义了数组指针p,一、使用下标方式表示:ar[ i]或者p[ i] (系统会自动将p[ i]转换成指针方式*(p+i))二、使用指针方式表示:*(ar+i)或者 *(p+......

2022-04-19 23:39:24 91

原创 const与指针变量的关系

const 修饰指针变量的时候:1、const 如果放在 * 的右边,修饰的是指针变量 p,表示指针变量不能被改变,但指针指向的内容可以被改变。int main(){ const int num = 10; //num = 20; //err int* const p = # int n = 100; *p = 20; //ok //p = &n; //err return 0;}2、const 如......

2022-04-18 12:10:06 161

原创 取值 * 和取地址 & 运算符的结合

虽然&*p=&a,而且p=&a,但是&*p并不能用来作为变量去被赋值,因为&a是一个地址常量,它只能读不能写。

2022-04-16 19:33:25 358

原创 问0x12345678是多少?

#include <stdio.h>int main(){union {int a; long b; unsigned char c; } m;m.b = 0x12345678;printf("%d\n", m.c);return 0;}0x12345678,这个是16进制的表示方法转换成2进制:1 0010 0011 0100 0101 0110 0111 1000union {int a; long b; unsigned c......

2022-04-15 18:31:04 4183

原创 类型与指针的关系

若三个类型的指针同时指向同一个地址,则识别的范围会不同。也就是,类型不仅对指针变量加一有影响,类型对内存的解析能力也是有影响的。数据在内存中存放遵循高低原则,也就是高字节内容存放在高地址,低字节内容存放在低地址,所以,0x12345678在内存中是这样存放的78的二进制56的二进制34的二进制12的二进制从上到下地址依次增加通常这组数据的第一个内存单元的地址, 也就是78对应的内存单元编号表示整体的内存地址,如果是int类型就取出这4个字节,...

2022-04-15 00:32:39 274

原创 类型对指针加一的限制(附*p++、++*p、*++p)

关于不同类型的指针变量大小 在x86(32位)的系统中,不管是什么类型的指针变量,都是只是存储数据元素的首地址,所以大小都一定是4字节。在x64(64位)的系统中,不管是什么类型的指针变量,都是只是存储数据元素的首地址,所以大小都一定是8字节。关于指针变量加一的操作首先:指针 + 1 并不是指针代表的地址值 + 1指针变量加1,即向后移动1 个位置表示指针变量指向下一个数据元素的首地址。而不是在原地址基础上加1。至于真实的地址加了多少,要看原来指针指向的数据类型是什么。......

2022-04-14 00:03:25 475

原创 函数如何返回变量的地址

当程序编译链接成功之后,会产生可执行文件,当可执行文件执行的时候,系统将会从磁盘把文件加载到内存,代码加载到代码区,而这时的局部静态变量是加载到的数据区(data区),所以当执行完fun函数之后,虽然fun函数所占用的栈帧回收了,但是局部静态变量生存期并没有影响(静态变量是在系统进入到主函数时就被定义了)。所以最后输出*ip时的结果是10。同样,定义了全局变量,也是存储在数据区,所以也可以返回。所以,若要调用函数使用指针,并且想要不受影响,不能把块内(栈帧里)的某个变量的地址赋值给某个...

2022-04-11 19:52:29 1711

原创 关于失效指针

失效指针指向一个已删除的对象内存区域的指针。(可以通俗理解为这个指针你不知道他指向什么)。下面我们用两个简单的例子来说明一下:第一个例子:int main(){ int a = 10; int *p = NULL; if (10 == a) { int x = 100; p = &x; } printf("%d\n", *p); return 0;} 在上述代码中我们把条件判断语句中的语句称为块内作用域,也就是说X只在花括号内有效,程序成从i......

2022-04-09 18:35:41 151

原创 野指针,空指针

野指针若定义整型变量时不进行初始化,系统会自动分配随机值给变量。同样若定义整型指针变量不进行初始化,系统会随机分配地址给指针变量。此时这个指针叫作野指针。当对野指针进行解引用并进行赋值时,就会导致有可能将内存中 代码区、数据区、堆区中的地址赋予“其他变量”,若后续接着对这个“其他变量”进行修改,将有可能将其他各区的数据进行修改,导致很严重的错误。 ......

2022-04-07 01:37:28 1287 1

原创 指针的应用(关于形参)

值的传递当两个变量想用函数将变量存的值进行操作时,所引用的函数假如直接用一般变量去作为参数,会导致只是把参数的值改变了,而不会传回原来的变量中,例如在上图中,swap函数的参数是用变量a,b直接作为参数而不是用指针,就会导致最后只是a,b的值进行交换了,而x,y则并没有发生交换......

2022-04-05 15:10:02 188

原创 关于指针的含义

指针在汇编中的含义

2022-04-01 12:40:50 51

原创 指针数组 和 数组指针 (附第1题(冒泡排序)、第2题例题)

指针数组:指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。即 多个指针组成的数组。数组指针:数组指针可以说成是”数组的指针”,首先这个变量是一个指针,其次,”数组”修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。即 指向一个数组首地址的指针。......

2022-03-21 13:20:47 107

原创 关于字符串赋值给字符指针

字符串赋值给字符指针(char *a="hello")的正确理解方式 - clemente - 博客园对于语句 char *a="hello"; 对于这个声明方式,会造成的误解是:声明了一个字符指针(它会指向一个位置),将“字符串”赋值给 指针表达式"*a"所指https://www.cnblogs.com/clemente/p/10755964.html......

2022-03-02 13:53:58 1061

原创 关于 数组

未初始化的数组元素会自动定义为0。定义数组的时候,逗号之间不可以不输入数据,会导致输入错误。数组大小等于元素个数乘以元素类型。数组下标可以不给,编译器在编译时可以知道数组有多少个元素。数组ar[ ]有7个元素,所以数组大小为7*4(int型)=28,数组长度是7数组ch[ ]存的是字符串,含有10个字符和一个隐藏的/0,所以数组大小为11*1(char类型),数组长度是11,而要注意用strlen函数求ch[ ]的字符串长度是10,因为/0不算入字符串......

2022-03-02 00:24:56 218

原创 编程练习题

注意:输出浮点型数据时,单精度用%f,双精度用%lf。最好用双精度,因为单精度输出只有7位有效值,而双精度能达到16位。

2022-02-19 19:05:56 159

原创 break continue goto exit

一 、break注意:1)break只能跳出一层循环。2)break只能用在switch和循环语句中,其他一般用return。二、continue注意:1)如上图后两个程序语句,在while和dowhile语句中很容易出现死循环,所以一般不在while和dowhile语句中使用continue。2)在for循环中使用continue的时候假如for循环中没有循环条件会导致进入死循环。除非改成这样,就可以正常运行了。三、goto...

2022-02-05 20:30:32 253

原创 关于循环语句

注意:while与dowhile的区别就是,dowhile会先执行一次循环体再判断是否重新进入循环,也就是会比while语句多一次循环。题目一:九九乘法表C语言小编程之九九乘法表_宇哲-CSDN博客_九九乘法表c语言编程在初学C语言中,我们会遇到很多九九乘法表的问题,在这我们进行一系列的分析。 九九乘法表的格式是x*x=x的格式。 接下来,我们要做的是利用循环结构,使得数量发生变化。在最后,要对乘法表的形状进行限定。 首先我们先进行,对 两个乘数进行循环。然后求积,最后输出,我们

2022-02-02 01:34:17 162

原创 判断闰年题目(要求使用函数)

写一个函数判断闰年C语言_HiMark-CSDN博客_编写一个判断闰年的函数闰年:能被4整除同时不能被100整除,或者能被400整除。#include#pragma warning (disable:4996)int runnian(int n){ if (((n%100!=0) && (n%4==0)) || ( n % 400==0) ) { return 1; } else {https://blog.csdn.net/yu876876/article/details/793386..

2022-02-01 16:18:27 485

原创 关于有限状态机的运用(switch语句)

有限状态机

2022-02-01 14:50:15 633

原创 三道关于if语句的题目

1)C语言—输出三个整数的最大值_一个馋女王(美杜莎)身子的程序员的博客-CSDN博客_c语言输入三个数输出最大值C语言三个整数求最大对于求三个数中最大的一个,首先定义三个整型变量a,b,c。最后把最大值赋给a,也就是三个变量互相交换使得a成为最大的那个。int a,b,c; //定义三个整型变量scanf("%d%d%d",&a,&b,&c); //从键盘输入给三个变量赋值2.编写程序求出a,b,中的最大者if(a<b) a=b; //如果a小于b,就将b的值赋给a...

2022-01-30 02:15:38 404

原创 关于判断输入字符串是什么类型的if语句

判断的条件可以通过调用库函数进行优化:改写成:

2022-01-30 01:40:05 393

原创 标准文件与缓冲区以及EOF关键字

其中要注意EOF关键字的用法:此时输入回车也不会结束输入,当同时按住ctrl+C才会结束输入,也就是说getchar()!=EOF用来作为判断结束循环的条件的话,就可以用来输入多行字符(即不会被换行符影响输入)。同时要注意到这些字符输入之后,换行符是算在字符串里的,也就是说换行符也是一个字符,而不是可以忽略的结束符。重要知识点:问:为什么会跳过ch=getchar();这行代码导致没等输入y或n程序就结束了?答:scanf()......

2022-01-30 00:50:26 638

原创 关于逻辑运算符

x等于10,10的反等于0,然后0的反等于1,所以x最后是1,但是逻辑运算符中只有++和--有回写的能力,所以a依然是10

2022-01-28 13:36:04 209

原创 bool类型

注意:1)bool类型的变量只要等于非零数都为true。例一:例二:例三:2)bool类型大小为1字节(1byte),但是实际上只需用到一个二进制位(1bit),因为只有0(false)或1(true)两个值3)注意区别几个字符......

2022-01-26 19:48:57 9968

原创 关于register关键字

例如:for循环中的c在每一次循环中,cpu都需要将c从内存中读取到寄存器,然后将c++之后又写回到内存中,所以访问速度相对就会慢,所以可以用register关键字建议cpu将变量c存放在寄存器中以提高访问速度。注意:其中1)32位系统中,有四个通用寄存器,每个寄存器只能存放32个二进制位(也就是4字节),所以寄存器变量大小不能超过整型大小。3)假如寄存器变量是全局变量,这个寄存器就会在整个程序执行中被占用,所以不能定义全局变量为寄存器变量。但是假如是局部变量(或者形参)..

2022-01-25 00:38:49 676

原创 关于宏常量

结果为29结果为80

2022-01-24 00:11:31 177

原创 关于静态关键字static

局部变量:fun函数的变量b是静态局部变量,所以在fun函数第一次被调用时,b被初始化,之后fun函数再次被调用就不会再次初始化了。原因是静态局部变量的空间并不在栈区,而是在数据区,就如同上图中a是在栈区,b是在数据区(数据区的数据在整个程序执行过程中都存在,栈区的数据在函数调用完时数据空间就要返还给系统)注意:1)静态全局变量或者静态局部变量在定义变量时若没有初始化,系统会自动把变量初始化为02)在c中,静态局部变量必须用常量来初始化,不能用变量初始化,如下图:..

2022-01-24 00:10:05 505

原创 关于extern

例如:g_min是在fun函数和主函数后面定义的,所以在g_min定义之前的函数是不能调用的,此时有两种办法处理,一,将定义改到函数之前定义。二,使用extern关键字对变量进行声明。如下图:注意:extern关键字只对全局变量有效。......

2022-01-23 12:54:13 191

原创 关于typedef

例如:即用了typedef关键字可以将一个数据类型换成其他名字

2022-01-23 12:02:19 426

原创 关于sizeof

sizeof是一个关键字,在编译的时候就会确定括号内的类型并计算出大小,但是在编译完成时就已经没有了++a这个表达式,所以a会依然是0而不是1

2022-01-22 08:58:16 147

原创 关于指针,存储方式

在内存中,每8位在内存中作为一个储存单元,每8位(bit)也叫一字节(byte),作为内存单位在32位系统中,每一个存储单元用4字节(也就是32位二进制数)给自己编号,也就是说,一个地址用32位二进制数来表示。编址范围是2^32,也就是4G。在64位系统中,每一个存储单元用8字节(也就是64位二进制数)给自己编号,也就是说,一个地址用64位二进制数来表示。编址范围是2^64,也就是16777216T,但实际上只能存128G。注意:1、指针存储的是地址是用4个存储单元(一个整型变.....

2022-01-20 23:58:12 2455

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除