C
C语言的基础知识和简单应用
MelonSuika
这个作者很懒,什么都没留下…
展开
-
关于结构体以及内部指针的一道面试题
某公司的一道面试题,有个地方纠结了半天,可能是惯性思维的原因吧,最终还是没看出来T.T 找出下面程序运行错误的语句 struct S{ int i; int *p; }; int main(){ S s; int *p = &s.i; p[0] = 4; p[1] = 3; s.p = p; s.p[1] = 1原创 2016-10-22 11:50:29 · 1130 阅读 · 1 评论 -
C字符串、字符和字节(下)
06—高级字符串查找 接下来的一组函数简化了从一个字符串中查找和抽取一个子串的过程。1.查找一个字符串前缀 strspn和strcspn函数用于在字符串的起始位置对字符计数。它们的原型如下:size_tstrspn(charconst*str,charconst*group);size_tstrcspn(charconst*str...原创 2019-10-08 14:20:05 · 252 阅读 · 0 评论 -
C字符串、字符和字节(上)
“字符串是一种重要的数据类型,但是C语言并没有显式的字符串数据类型,因为字符串以字符串常量的形式出现或者存储于字符数组中。字符串常量适用于那些程序不会进行修改的字符串。所有其他字符串必须存储于字符数组或动态分配的内存中。本文描述处理字符串和字符的库函数,以及一些相关的,具有类似能力的函数。”01—字符串基础首先,我们了解下字符串的基础知识。字符串就是一串零个或多个字符,并且以一个...原创 2019-09-30 12:52:09 · 533 阅读 · 0 评论 -
C数组篇(一维数组-下)
紧接着上篇,继续来讲讲C中的数组。6.作为函数参数的数组名当一个数组名作为函数参数传递给一个函数时会发生什么情况呢?数组名的值就是一个指向数组第一个元素的指针,所以很容易明白此时传递给函数的是一份该指针的拷贝。函数如果执行了下标引用,实际上是对这个指针执行间接访问操作,并且通过这种间接访问,函数可以访问和修改调用程序的数组元素。现在来解释下C关于参数传递的表面上的矛盾之处。之...原创 2019-09-25 15:45:25 · 259 阅读 · 0 评论 -
C数组篇(一维数组-上)
数组,相信大家都使用过。本文将由浅入深的讨论数组,探索一些更高级的数组话题,如多维数组、数组与指针及数组的初始化等。一、一维数组在讨论多维数组之前,先来学习下一维数组的知识。首先我们学习一个概念,它被许多人认为是C语言设计的一个缺陷。但实际上,这个概念是以一种相当优雅的方式把一些完全的不同的概念联系在了一起。1.数组名考虑下面声明:int a;int b[10];我们把...原创 2019-09-25 11:40:30 · 259 阅读 · 0 评论 -
C操作符(下)
一、左值与右值为了理解有些操作符存在的限制,必须理解左值(L-value)和右值(R-value)之间的区别。这两个术语是多年前由编译器设计者所创造并沿用至今,尽管它们的定义并不与C语言严格吻合。左值就是那些能出现在赋值符号左边的东西。右值就是那些可以出现在赋值符号右边的东西。举栗:a = b + 25;a是个左值,因为它标识了一个可以存储结果值的地点,b+25是个右值,因为它指定...原创 2019-09-24 13:20:20 · 236 阅读 · 0 评论 -
C操作符(上)
C提供了所有你希望编程语言应该拥有的操作符,它甚至提供了一些你意想不到的操作符,事实上,C被人所诟病的一个缺点就是它品种繁多的操作符。C的栅格特点使它很难被精通。另一方面,C的许多操作符具有其它语言操作符无可抗衡的价值,这也是C适用于开发范围极广的运用程序的原因之一。一、操作符为了便于解释,我们对操作符进行了分类。1.算术操作符+ - * / %...原创 2019-09-23 10:42:32 · 289 阅读 · 0 评论 -
C预处理
预处理器,预处理器并不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始。预处理指令,c/c++...原创 2019-09-22 12:14:36 · 420 阅读 · 0 评论 -
C指针
c和指针的关系十分密切,所以在本文,我们会详细的谈谈指针。这边我会结合<<c与指针>>这本书的内容来介绍它。一.内存与地址计算机的内存可以看作是一条长街上的一排房屋。每座房子都可以容纳数据,并通过一个房号来标识。这个比喻颇为有用,但也存在局限性。计算机的内存由数以亿万计的位(bit)组成,每个位可以容纳值0或1。由于一个位所能表示的范围太有限,所以单独的位用处...原创 2019-09-22 12:13:28 · 686 阅读 · 0 评论 -
C递归
递归这个词,生活中应该比较少用到,你可能对它比较陌生,而本文的主题就是它。举个从小就听过的例子:从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山,山里有座庙…再举个例子,下图就可以看做近似的递归,再来看一下百度对递归词汇的解释,相信通过上面的解释,大家对递归有一定的认识了。接下来,我们正式来讲讲程序设计中的递归函数。递归函数就是函数直接或者间接调用自身的函数。许多教科书把...原创 2019-09-22 11:41:51 · 508 阅读 · 0 评论 -
C编译与环境
“我们平时所说的程序,是指双击之后可以直接运行的程序,这样的程序被称为可执行程序(Executable Program),也就是windows平台下常见的.exe。本文就来说一说从你编写的代码到生成.exe,期间经历了什么以及相关知识。” 可执行程序的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,CPU可以识别;但是对于写代码的人来说,它们非常隐晦且难以记忆。...原创 2019-10-09 12:51:55 · 1282 阅读 · 0 评论