自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 必须知道的C语言知识细节:函数参数传递方式只有值传递吗?

C语言函数是很重要的语法结构,函数将程序模块化,实现一个个独立的小功能。函数是由返回值类型、函数名、函数参数列表组成的,其中函数调用时,将实参传递给参数列表的形参,函数根据传递的实参值计算出结果返回,这里涉及传递函数参数的方式。形参 VS 实参形参(形式参数):很简单,函数声明和定义中的参数名称就是形参,例如:定义一个计算两个整数和的函数,其中参数名称a和b就是形参。int add(int a, int b){return a+b;}实参(实际参数):当需要实际调用时,传递给函数的具体参数值

2020-07-24 22:30:10 1147

原创 必须知道的C语言知识细节:什么是变量的地址

计算机中内存是按照字节编址的,也就是每个字节都有唯一的地址,例如32位计算机,内存地址空间是2的32次方,也就是4G字节空间,地址编号从0开始,范围是0到2^32-1。C语言是接近硬件的高级语言,提供运算符(&和*)以及指针直接操作内存地址。地址本质上也是一个无符号整数,C语言使用运算符 & 直接获取变量地址,运算符*用来定义指针变量和间接获取地址存放的值。输出有两种方式:1.使用格式控制符号 %p 输出地址十六进制格式。2.使用%lu输出地址无符号十进制整数表示。例如:int

2020-07-24 21:37:37 5703

原创 必须知道的C语言知识细节:=和==区别

今天有同学问我,C语言中的等号和数学中的等号区别。这个问题对初学者的确有一些迷惑,这里详细说明下。C语言中等号=表示赋值运算符,例如E1=E2,表示将E2的值存放到变量E1中,E1必须是可修改的左值,也就是变量。双等号是逻辑判断运算符,表示相等,例如E1E2,表示判断E1和E2的值是否相等,如果相等返回1,不相等返回0值。因此,双等号==才是数学中的等号,另外C语言中的不相等运算符号用 != 表示。注意两者不能混用,在if、while、for等语句中表示逻辑判断是,如果混用将导致程序运行结果不正确。

2020-07-24 19:10:06 6566

原创 v必须知道的C语言知识细节:注释三种使用方式区别

注释的作用是给代码做说明,方便别人阅读和理解代码,写注释是很好的编程习惯。编译器会直接忽略代码中的注释,注释不对程序功能产生任何影响,即使不写注释,也不影响程序代码。三种注释写法:1.单行注释,/* */之间的所有内容会被作为注释。/* 这是注释 */2.多行注释,/* */之间的多行内容会被作为注释。/*这是注释1。这是注释2。*/3.C99新增的一种单行注释,该风格借鉴C++注释风格。//符号表示的注释告诉编译器忽略 // 和换行符间的所有内容,单行注释不能跨行。// 这是单行注

2020-07-23 16:25:14 837

原创 必须知道的C语言知识细节:单引号和双引号正确用法

C语言中ACSII码字符单引号’和双引号"在程序中经常出现,很简单,但却是十分重要的语法标点符号,初学者容易混淆使用。单引号在字符常量时使用,表示单个字符。例如:char c;c = ‘a’;c = ‘1’;c = ‘A’;当在单引号中出现两个及以上字符时或没有字符时,编译出错。例如:char c = ‘aA’;  // 编译出错,单引号只能是一个字符char c = ‘’;    // 单引号中间没有任何字符时,编译出错双引号在表示字符串常量时使用,可以

2020-07-23 15:58:51 19124 2

原创 必须知道的C语言知识细节:sizeof是关键字还是运算符?

很明显,sizeof是C语言的语法关键字,不是运算符。运算符是有优先级和结合性的,具体可以参见前面全面介绍运算符的文章。[C语言表达式和运算符][C语言运算符表(完整)]关键字是C语言语法保留和内置支持的,不存在优先级和结合性的问题。sizeof是用来求指定类型或指定变量的占用内存的字节数,使用注意有两种情况:1.求类型的字节数时,后面必须有括号2.求指定变量的字节数时,括号可以省略,也可以加上括号备注:建议都加上括号,这样就不会出错。例如:int x;sizeof出现在

2020-07-23 15:41:44 949

原创 必须知道的C语言知识细节:break、continue语句区别

break语句、continue语句都是C语言标准规定的跳转类语句,能够实现程序无条件转向另一处执行。break和continue中在循环体中经常出现,因此必须掌握其区别,避免出错。先复习下两种语句的用法:break语句可以在开关体(switch语句)或循环体内(while,do…while,for)出现,总结起来用以下四种情况,实现跳出当前switch语句或循环体语句,跳转到开关体或循环体外执行下一条语句功能。while(....){ ... break; ...}d

2020-07-22 21:29:48 1147

原创 必须知道的C语言知识细节:|和||、&和&&区别

||和|,&和&&是初学者容易混淆的运算符。从运算符种类来看,两者是完全不同的运算符。||是逻辑运算符,表示逻辑或;&&是逻辑运算符,表示逻辑与;|是位运算符,表示按位或;&是位运算符,表示按位与。逻辑运算符的优先级比位运算符优先级低。按位或运算符|表示将两个整数用二进制表示后,按位进行操作,只要有1位出现1则当前位的值为1,每一位运算取值有以下4种情况。0|0=0 0|1=1 1|0=1 1|1=1按位与运算符&表示将两个整数

2020-07-22 16:25:47 1932

原创 必须知道的C语言知识细节:常量、#define、const区别

C语言中定义“常量”有三种方式,请注意,这里的“常量”是指实现等价的常量效果,例如数组长度100,圆周率PI等。备注:常量最大的特点是不可更改,编译时就知道其具体的值。第一种是严格意义上的常量,各种类型的字面值。C语言中严格意义的常量是指某种类型的具体值,例如整型值100,字符值 ‘a’,浮点型值3.14159,字符串常量"abcd",空指针常量NULL,枚举常量。例如:int r = 25; // 半径,25是常量,初始化赋值给变量rdouble s = rr3.14159; // 面积,3

2020-07-22 14:44:38 273

原创 必须知道的C语言知识细节:声明和定义

C语言中的声明(declaration)和定义(definition)是两个容易混淆的概念。声明只是给变量、函数、结构体、联合体命名,表明程序有该变量、函数、结构体、联合体。定义是具体给变量分配存储空间、给出函数的具体实现、指明结构体和联合体成员。简单理解:如果程序中仅仅有声明,缺少定义实现,最终无法生成可执行的程序,因为信息不完整,无法完成编译全过程。C语言中声明和定义的原则是:声明可以出现多次,定义有且只能出现一次。定义必须有,且只能出现一次。声明和定义可以同时出现。声明和定义可以分为以

2020-07-21 18:57:05 1094

原创 必须知道的C语言知识细节:左值和右值知识总结

C语言中左值和右值概念是来自赋值或复合赋值表达式。初学者会很容易迷惑,这里给出这两个概念总结。对于赋值表达式E1=E2,其中E1必须是可修改的左值,E2是右值。左值:简写lvalue,left value右值:简写rvalue,right value例如:int m = 1; 很明显m是左值,1是右值。左值是指向内存区域的对象,左值可以出现赋值表达式的左边或右边,当左值出现的右边时,自动转换为右值使用。右值是指存储在内存中的数值本身,右值不能出现的赋值表达式左边,否则编译出错。例如:int

2020-07-21 18:43:04 2476 1

原创 必须知道的C语言知识细节:i++和++i

i++是后缀自增运算符,++i是前缀自增运算符。正常情况下,执行完毕,两种等价,例如:int i=1;i++;int i=1;++i;执行完毕,i的值均为2。但是在复合的表达式中、函数调用中却有明显区别。i++,表示先取i的值进行表达式计算或函数调用,最后加法再计算 i=i+1;++i,表示先加法计算i=i+1,然后在进行表达式计算或函数调用。例如:int i = 1;int k1 = i++; // k1等于1i=1;int k2 = ++i; // k2等于2i = 1

2020-07-21 16:37:51 2822

原创 必须知道的C语言知识细节:进制表示

C语言中表示数时经常提到二进制、八进制、十进制和十六进制表示。为方便理解,先介绍十进制。十进制:是指由0,1,2,3,4,5,6,7,8,9 十个数字表示的数,逢十进位,因此是十进制,可以看出十进制没有单独数字10,因为不需要,10可以用进1位表示。同理:二进制:是有0和1两个数字表示的数,逢2进位,所以二进制中不会出现2。八进制:是指由0,1,2,3,4,5,6,7 八个数字表示的数,逢8进位。十六进制:是指由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 十六个数字表示的数,

2020-07-21 16:26:35 2783

原创 C、C++、Java到Python,编程入门学习什么语言好?

最近,TIOBE更新了7月的编程语言榜单,常年霸榜的C、Java和Python依然蝉联前三位。万万没想到的是,R语言居然冲到了第八位,创下了史上最佳记录。而且后续随着业内对数据统计和挖掘需求的上涨,R语言热度颇有些势不可挡的架势。然而作为程序员吃饭的工具,编程语言之间也形成了某种鄙视链,各大论坛里弥漫着剑拔弩张的气氛,众口难调。也难怪有很多初学者会有疑惑,为什么会有这么多编程语言,我到底应该学什么语言?回顾编程语言几十年来的兴衰起伏,似乎也折射了整个信息产业的变迁消亡,想要在技术的洪流里激流勇进,找准

2020-07-21 16:10:32 444

原创 计算机专业学生毕业去大公司好还是小公司好?

作为一个程序员在选择公司的时候到底应该是选择大厂好还是小厂好呢?一直以来,如何选择公司是大家很关注的问题,徐老师经常收到大家类似的提问。于是,为了减轻小伙伴们的疑惑,徐老师专门整理了以下建议,希望可以给处于混沌状态的你一些参考。在我们进行选择的时候经常会听到这么两个声音:选择大公司好,因为大公司的工资高,福利好,工作安稳有保障;选择小公司好,小公司可以让你快速的学习,在大公司里只能做颗螺丝钉。在做选择前我们先来了解下大小公司各自的优缺点。大公司一般是指人数在100人以上的公司。它一般具.

2020-07-20 19:27:46 1355

原创 整数在内存中的存储大家都知道,那么小数是怎么存储的呢?

整数在内存中的存储方式比较简单,我们来看看小数在内存中的存储方式。首先,要学会十进制小数与二进制小数之间的转换。(1)二进制小数转化为十进制小数比如把二进制小数110.11转化为十进制小数,步骤如下:(2)十进制小数转化为二进制小数方法:1,先分别把十进制小数的整数部分和小数部分转化为二进制2,然后合并当然整数部分很简单,直接进行二进制转化,而小数部分就不一样了。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行

2020-07-20 19:08:57 832

原创 计算机类专业都有什么区别?

随着社会日新月异的发展,计算机专业,逐渐变得炙手可热,也正因为如此,在选择这个专业的时候,应该结合自己的兴趣和未来想从事的职位进行综合考量。那第一步,就是给自己建立一个计算机及相关系统的认知,那首先先来问问你,你知道现代计算机生态系统都有哪些分类吗?计算机及相关系统可以简单划分为如下概念:计算机硬件计算机软件计算机网络计算机硬件就是组成计算机的物理条件,目前都是基于图灵系统构造的。包含了计算机、单片机等。当然还有相应的周边硬件也可以属于计算机硬件,比如打印机、路由器等。计算机软件分.

2020-07-18 19:08:34 3036 2

原创 C++ 手把手教你实现可变长的数组

—***** 1******—*要实现什么函数呢?假设我们要实现一个会自动扩展的数组类,我们需要实现函数呢?先从下面 main 函数使用的功能,看看有什么函数是需要我们实现的。输出结果:0 1 2 3 4要实现如上的功能,要做哪些事情呢?先列出来:要用动态分配的内存的方式,来存放数组元素,且需要一个指针成员变量重载赋值 = 运算符重载括号 [] 运算符重载复制构造函数实现 push_b

2020-07-18 16:45:53 1567

原创 在走往C语言C系列编程程序员的路上,读这篇文章让你不易走偏!

作为想去往程序员的路上,C++是一个必须学会的编程语言,下面我就我学习的C++知识和大家谈谈,C++的入门知识汇总。首先先来看一个最基础的简单程序:#includeusing namespace std;void main(){coutcoutgetchar();}这程序的执行结果就是在屏幕中成功输出一段话作为入门学者,往往只有看到程序执行完后有数据输出才的判断自己的程序是否编写正确,但是这其实只能表明你的程序没有编译错误,至于程序有没有问题这就涉及到软件测试的相关知

2020-07-17 16:20:06 646

转载 17条嵌入式C语言编程小知识总结

流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件执行”功能。在LPC2200系列中:可以通过过下面的程序延迟10毫秒:for(i=0;i<200;i++){for(j=0;j<200;j++);}通过下面语句将一个16位的变量放在两个8位的变量中。//IP数据报总长度高字节..

2020-07-17 15:40:04 142

原创 不同薪资的代码,差别在哪里?

看这代码水平如何?开8k的工资我就写8k的代码,开20k的工资我就写20k的代码。下面这代码可读性爆表了!*测试:没BUG呀产品:功能实现了呀考核:代码提交足行队友:*太简洁易读了一本书上说,下面的 C 语言代码可能会产生无限循环。****你看出Bug在哪里吗?雷军1994年写的汇编代码,你见过吗?其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。...

2020-07-15 15:37:43 418

原创 深度探索C++对象模型:类的大小

现在有这样一段代码:class X { }; class Y : public virtual X { }; class Z : public virtual X { }; class A : public Y, public Z {}; 对 class X、Y、Z、A 进行 sizeof 运算结果是什么呢?如果你心里已经有了答案,不妨看完下面的分析再说。C++ 初学者常有一个错误

2020-07-14 16:16:50 134

原创 深度探索C++对象模型:成员变量的初始化列表

对 class members 的初始化操作可以放在 member initialization list 或者 construct 中进行,但两者之间是有一些区别的,无论是在效率上还是在语法上。何时应该使用 initialization list ?在语法方面来说,为了程序可以通过编译,下面几种情况必须使用 initialization list :当初始化一个 reference member 时当初始化一个 const member 时当调用一个 base class 的 construct

2020-07-14 15:55:27 124

原创 为什么看到这么多人不推荐C++?

2000年左右是C++的鼎盛期,游戏,图形界面,科学计算,后台服务,各种新语言的实现语言,甚至入侵了一点操作系统里C的地盘。一项技术,火起来蜂拥而上,泥沙俱下,平稳后发现后劲不足,或者有另一个风口出现,便如树倒萎溃散。进化是好事,进化的同时要吸取经验,避免出现返祖现象。C++之父写过一本神书,«C++语言的设计和演化»,鄙人孤陋寡闻,似乎这是唯一一本阐述语言设计理念、折衷的辛苦无奈历程,Bjarne 在书中提出了很多极具智慧的设计理念,比如时下小火的俨然C++继任者 Rust 也极为推崇的“零代价抽象.

2020-07-14 15:13:05 506

原创 深度探索C++对象模型:拷贝构造函数

对象之间的拷贝操作发生对象之间拷贝操作的三种情况:用一个 object 对另一个 object 进行初始化操作当 object 被用作函数参数时当一个函数返回值为一个 object 时如果一个 class 明确定义了 copy constructor ,那么在上述几种情况中会调用该 copy constructor ,但如果一个 class 没有定义 copy constructor 呢?转载请

2020-07-11 16:40:15 153

原创 深度探索C++对象模型:默认构造函数

默认构造函数在被需要的时候被编译器产生出来。这句话的关键部分是:被谁需要?什么时候被需要?做什么事情?被谁需要?编译器为程序构建默认构造函数是因为编译器需要它,而不是因为程序需要它。程序需要什么应该是程序员的责任,应该由程序员提供。举个例子,例如下面这段代码:class Foo { public: int val; Foo* pnext; } void foo_bar() { Foo bar; // 程序需要 bar's members 都被初始化为

2020-07-11 16:20:50 176

原创 深度探索C++对象模型:三种对象模型

引言现在有一个 Point 类,声明如下:class Point { public: Point(float xval); virtual ~Point(); float x() const; static int PointCount(); protected: virtual ostream& print(ostream &os) const; float _x; static int _point_count;};这个

2020-07-11 16:02:19 463

原创 C语言编程需要掌握的核心要点有哪些? 为你总结了这20个

摘要: C语言作为编程的入门语言,学习者如何快速掌握其核心知识点,面对茫茫书海,似乎有点迷茫。为了让各位快速地掌握C语言的知识内容,在这里对相关的知识点进行了归纳。C语言精简的语法集和标准库,让我们可以把精力集中到设计等真正重要的事情上来,而不是迷失在语法的海洋里,这对于初学者尤其重要。虽然C语言有抽象不足的缺点,但我更喜欢它的精巧,只需要花少量的时间,研究清楚它每一个知识点,看任何C源码就不会存在语法上的障碍,大家需要建立的知识共识足够少,少即是多,少好于多。编程语言有很多种,比如JAVA,PHP,P

2020-07-10 21:34:57 1377

原创 如何把C++的源代码改写成C代码

C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用C语言改写是很有必要的。C++与C区别最大的就是C++中的类的概念和特性,将C++改为C的问题,就转换成如何将类化去的问题。方法有两种:将C++中的面向对象特征去掉,先全部理解源代码的逻辑,然后改写;是在C中保留面向对象的部分特征,用结构体实现类的功能。第一种方法,对于类的数目很少的情况还可以,如果类的数目比较多,全部理解源代码,然后重

2020-07-10 18:37:26 1319

原创 2020年7月编程语言排名,C语言与Java拉大距离,黑马R排名第八

TIOBE编程社区2020年7月编程语言排行榜如期而至,你的生活工作是否也是这样如期而至呢?看看7月编程语言排行榜又有哪些变化呢?你所心仪的编程语言有什么变化吗?7月份编程语言榜单中,C语言依旧占据第一的位置。其中变化比较大的就是本年度的黑马R语言,一路上升,进入前10名,本月排名第8,创造了新的历史记录。根据TIOBE编程社区的分析建议,R语言的流行主要在python语言提升中不断的增加。有两种趋势会增强R语言,一是商业统计语言和软件包时代已经结束,在统计分析中更多的大学和研究机构采用的是python

2020-07-09 16:42:21 183

原创 10个值得程序员关注的C语言开源项目

十个最值得阅读学习的C开源项目代码1.Webbench2. Tinyhttpd3. cJSON4. CMockery5. Libev6. Memcached7. Lua8. SQLite9. UNIX v610. NETBSD1. WebbenchWebbench 是一个在 linux 下使用的非常简单的网站压测工具。它使用 fork ()模拟多个客户端同时访问我们设定的 URL,测试网站在压力下工作的性能,最多可以模拟 3 万个并发连接去测试网站的负载能力。Webbenc

2020-07-09 15:25:48 585

原创 还用C/C++开发应用的程序员,这六大工具请查收!

1、CcacheC/C++程序的编译过程可能需要很长时间,Ccache是为了减轻一些编译负担。顾名思义,它是一个缓存,可以保存编译代码以便重用,如果相邻的几次编译运行没有改变代码,那么给定项目的运行时间越长,加速越多。它以逐个文件为基础,采用简单的MD4哈希算法来确定给定文件是否需要重新编译。不支持编译器的某些命令行命令,当Ccache无法知晓下一步该做什么时,它将返回原始编译器。2、TCC“T”代表“小”,“CC”代表“C编译器”。这个C99兼容编译器的二进制分发只有1.5MB。不仅小,TCC还超快

2020-07-08 23:04:36 936

原创 二叉树(Binary Tree)的建立与遍历——C语言实现

一、运行环境简介编辑器:VSCode + MicroSoft原生插件;????‍????运行环境: MinGW ;????‍????常用指令: gcc mian.c -o mian.exe二、二叉树的定义这里我们直接采用浙大数据结构课程中的代码。因为这种写法清晰明了,且便于后续扩展。typedef char ElementType;typedef struct TNode *Position; /* 结构体指针 */typedef Position BinTree; /* 二叉树类型 */

2020-07-08 21:56:05 1241

原创 C语言结构体用法很多,坑也很多

C语言可谓是编程界的传奇语言,历经几 十 年,依然排名前列。本文主要说的是C语言中的结构体,结构体是C语言中重要的一部分内容,也是C语言中常用的一种数据结构。一、关于结构体在C语言中,结构体(struct)指的是一种数据结构,是C语言中复合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

2020-07-08 16:52:22 715

原创 《C语言》—— 数组详解

数组的基本概念我们把一组数据的集合称为 数组(Array) ,它所包含的每一个数据叫做 数组元素 (Element),所包含的数据的个数称为 数组长度 (Length),数组中的每个元素都有一个序号,这个序号从0开始,而不是从我们熟悉的1开始,称为 下标 (Index),所包含数组的里面元素的类型叫做 数组类型 (Type)。一句话就说清楚了数组的基本概念,就是这么简单,_。数组底层结构探析1int

2020-07-07 22:11:23 514 1

原创 C++程序员快要被市场淘汰了吗?

虽然这个语言整体感觉难度不小,而且在入行前两年用起来很不爽,但随着时间推移每天不折腾几行代码心理还觉得难受已经养成多年习惯了,现在国内软件市场应用级别的开发更多一点,所以高级语言的发展空间也会更大一点,比如java,php等高级语言的职位存在感极强,倒是让人觉得C/C++有点被市场淘汰的感觉,真实的场景是C/C++依然占据非常关键的位置,在客户端开发以及底层系统开发占据着极其重要的作用。说C/C++被市场淘汰的人说明对这个行业不是很熟悉或者压根就是门外汉,不可能所有的人都转向上层应用的开发,还需要一批耐

2020-07-07 15:15:55 897

原创 为什么C语言是最适合单片机编程的高级语言

单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。这个问题的意思应该是:现在有很多很好用的高级语言,如VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。一、单片机编程的特点对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。第三、单片机算法运算中,尽量使用加法、

2020-07-06 18:55:17 1015

原创 C++ 被炮轰是糟糕的语言 !

这位知名游戏《The Witness》的开发者还介绍了他新开发的编程语言,有望将工作效率提升50%至80%。2014 年的某个时刻,Jonathan Blow仍在开发《The Witness》这款游戏时,突然觉得敲代码是一种悲惨的经历。为什么是那样呢?用 Blow 的话来说,那是由于C++是一种“非常非常糟糕的语言。”上周他在巴塞罗那的Gamelab大会上演讲时阐述了他认为这种常用编程语言的诸多问题,以及他希望通过自行研发的替代语言Jai来实现的目标。Blow认为,C++的主要缺陷在于它是一个非常

2020-07-06 16:53:11 762

原创 一个经典且稍有难度的C面试题,值得一看!

题目是这样的:在一个整数数组中1个数出现了3次,其余的数都出现了2次,请找出出现3次的数。建议大家自己先思考一下,我们下面直接给出了解法。一、常规解法(3种)1.用两个循环,外层循环每次提供一个数,内层循环遍历数组进行比对,用另外的变量存储相等的次数,内层循环结束之后,如果存储次数的变量等于3,就输出这个元素,然后退出,否则外层循环提供下一个值,继续上述过程。for(i=0;i<SIZE;i++){ n=0; for(j=0;j<SIZE;j++) if(src[i

2020-07-03 16:14:15 321

原创 大数据解析:程序员到底能干到多少岁?

程序员这个职业究竟可以干多少年?大多数程序员都认为程序员是个吃青春饭的职业,编程这个事只能干到30岁,最多35岁吧。每每听到这样的言论,都让人感到相当的无语……今天,我们又来谈这个老话题……首先,我们先来看一篇论文《Is Programming Knowledge Related to Age?》(英文版),这篇论文是两个北卡罗纳州立大学计算机科学系的两个人对StackOverflow.com上的用户做了相关的数据挖掘得出来的一些数据。(StackOverflow.com上的数据是公开的,任何人都可以

2020-07-03 15:52:44 2196

空空如也

空空如也

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

TA关注的人

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