![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
Frank看庐山
这个作者很懒,什么都没留下…
展开
-
关于C中指针的引用,解引用与脱去解引用
*,& 在指针操作中的意义 (1)* 大家都知道在写int *p 时,*可以声明一个指针。很少人知道*在C/C++中还有一个名字就是“解引用”。他的意思就是解释引用,说的通俗一点就是,直接去寻找指针所指的地址里面的内容,此内容可以是任何数据类型,当然也可以是指针(这就是双重指针,后面将会讨论)。需要注意的是,在变量声明的时候,*不能当做解引用使用,只是表示你声明的变量是一转载 2017-05-11 20:58:40 · 329 阅读 · 0 评论 -
int_least32_t这些怎么理解?
C99标准引入了一个头文件stdint.h,在这个头文件中用typedef声明了一个类型,如:typedef int int_least32_t;也就是int_least32_t就是int,既然它就是int,为什么C99标准的人要加这么个东西,难道是吃饱了撑着了?原创 2017-07-21 22:33:12 · 1262 阅读 · 0 评论 -
C语言要求变量必须先定义
C语言要求变量必须先定义,后使用!int表示变量是整型的....整型的含义是什么?什么叫定义?可以这样理解:定义就是分配内存空间!定义了一个变量后,那么在内存里就有一段空间属于这个变量。对变量的值进行操作,就是对内存中的内容进行操作。整型变量,其实可以理解成整数,包括负整数 零 正整数。比如:int data; // 定义一个整型变量,变量的名字原创 2017-08-07 23:04:31 · 4692 阅读 · 0 评论 -
c语言中%c与%s的区别
%c是单个字符,也就是用''的。%s是字符串,用“”的。原创 2017-07-25 09:40:46 · 30825 阅读 · 4 评论 -
符号常量
符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量#define 也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。原创 2017-07-26 22:14:10 · 1502 阅读 · 0 评论 -
字符常量
字符常量是用单引号括起来的单个普通字符或转义字符。字符常量有两种。一种是普通字符,另一种是转义字符。原创 2017-07-26 22:30:11 · 469 阅读 · 0 评论 -
数据对象
数据对象(Data Object):是性质相同的数据元素的集合。是数据的一个子集。数据对象是一种运行时的概念。可以是外部实体(例如,产生或使用信息的任何事物)、事物(例如,报表)、行为(例如,打电话)、事件(例如,响警报)、角色(例如,教师、学生)、单位(例如,会计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可以由一组属性来定义的实体都可以被认为是数据对象。转载 2017-08-13 22:13:58 · 1795 阅读 · 0 评论 -
数据、数据元素、数据对象、数据结构的定义
一、数据、数据元素、数据对象、数据结构的定义1、数据的定义定义一:数据是客观事物的符号表示。学号姓名语文数学C语言6201001张三8554926201002李四928464转载 2017-08-13 22:24:09 · 7136 阅读 · 1 评论 -
操作数
操作数是运算符作用于的实体,是表达式中的一个组成部分,它规定了指令中进行数字运算的量 。表达式是操作数与操作符的组合。先讲操作:就是+、-、*、/、逻辑运算&、|、~等等那么操作数就是操作符相邻的变量或常量例如:a+ba、b就是操作数,+就是操作符以此类推......原创 2017-08-13 22:34:20 · 3958 阅读 · 2 评论 -
用C语言写PHP扩展
1:预定义在home目录,也可以其他任意目录,写一个文件,例如caleng_module.def内容是你希望定义的函数名以及参数:int a(int x,int y)string b(string str,int n) 2:到php源码目录的ext目录#cd /usr/local/php-5.4.0/ext/ 执行命令,生成对应扩展目录#./ex转载 2017-12-09 13:26:39 · 177 阅读 · 0 评论 -
c写php扩展之编译php源码,创建扩展模块,编写扩展demo
用c写php扩展实属无奈,要用到16进制数据进行异或,偏移;php操作实在麻烦,不得已,决定自己写一个简单的动态库进行调用;环境:ubuntu10.0.41.下载php源代码http://www.php.net/downloads.php2.编译php源代码在写扩展之前需要编译源代码,不然后期要用的phpize无法找到;具体:转载 2017-12-09 14:29:12 · 305 阅读 · 0 评论 -
句柄
句柄是一种指向指针的指句柄就是个数字,一般和当前系统下的整数的位数一样,比如32bit系统下就是4个字节。这个数字是一个对象的唯一标示,和对象一一对应。这个对象可以是一个块内存,一个资源,或者一个服务的context(如 socket,thread)等等。这个数字的来源可以有很多中,只要能保证和它代表的对象保持唯一对应就可以,比如可以用内存地址,也可以用句柄表的转载 2017-12-15 14:16:49 · 187 阅读 · 0 评论 -
对数据文件的操作和文件流
对数据文件的操作和文件流一直到现在,我还是用键盘对程序进行输入,但是实际情况中大部分是对文件进行读取和输出,今天就学习一下对文件的输入输出 .根据文件对数据的组织形式 , 可分为ascll文件和二进制文件 "ascll"文件 又称 文本文件或字符文件 . 文件流 不是若干个文件组成的流 而是以 文件流输入输出 若要对文件进行输入输出 , 若要对文件进行输入输出转载 2018-02-01 20:30:56 · 213 阅读 · 0 评论 -
ubuntu 中的 C 环境的 头文件 和 库
头文件在 /usr/include 库在/usr/lib/i386-Linux-gnu/libc.so转载 http://wenku.baidu.com/view/c2958ce86294dd88d0d26b4c.html###linux下的头文件和库文件搜索路径include的header文件,连结数据库,系统定义,总共有下列来源指定gcc去那找。转载 2017-07-21 22:18:55 · 2629 阅读 · 0 评论 -
printf()函数
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。函数的原型为: int printf(const char *format, ...); 函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。 printf()函数的调用格式为: printf("", )转载 2017-07-20 19:16:57 · 325 阅读 · 0 评论 -
C语言 - 什么是数据类型?数据类型的本质
C语言中提供了许多的数据类型,如下图所示:c语言为什么要引入这么多的数据类型呢?因为C语言归根结底只是一门编程语言,一种让计算机为我们做事情的工具。引入这么多的数据类型是为了更加方便的表现现实世界中事物。1.什么是数据类型?C语言为我们提供了int, float等基本数据类型,这些都是表示基本数据用的。然而C语言也为我们提供了复杂的数据类型,比如struct, union等。这些可转载 2017-07-02 17:14:37 · 3519 阅读 · 0 评论 -
c/c++ 的 指针的解引用
指针 存储的是它指向的变量的地址。解引用, 就是引用它指向的变量的值。如: int *ptr = a; 那么解引用: *ptr == a原创 2017-05-13 12:04:25 · 1818 阅读 · 0 评论 -
什么是枚举?
枚举就是一一列举,将所有的情况都列举出来,那么取值的时候只能是这几种情况的一种,不能是别的。原创 2017-05-25 23:01:14 · 873 阅读 · 0 评论 -
数据结构之链表(C实现)
http://blog.sina.com.cn/s/blog_6975d67c01013jmq.html前言最近在复习数据结构的相关知识,感觉在初学的时候还是有很多东西没有掌握,不过现在终于算是搞得比较有头绪了,所以就在写出来和大家一起分享!什么是链表简单的说,链表就是由多个结点离散分配,彼此通过指针相连,每个结点只有一个前驱结点和后继结点。首节点无前驱结点转载 2017-06-06 10:02:45 · 371 阅读 · 0 评论 -
野指针
昨天在写完一个函数后,因里面用了很多指针操作, 写完后就回过头来检查,结果发现了一个”野指针”, 另我非常奇怪的是,这个”野指针”被我再次使用,程序运行居然没有问题.就是这个疑问, 引发了我写这篇文章.先说说什么是“野指针“。首先”野指针”的概念只会出现在像C和C++这种没有自动内存垃圾回收功能的高级语言中, 所以Java或c#肯定不会有野指针的概念. 当我转载 2017-06-20 00:36:38 · 157 阅读 · 0 评论 -
野指针的定义和避免
1.我们知道在程序中使用了一个野指针,会引起程序出错,造成段错误。下面我举一个例子指出野指针[cpp] view plain copy #include int main() { char *str; printf("input a str\n"); scanf(" %s", str); printf("%s转载 2017-06-20 00:47:38 · 205 阅读 · 0 评论 -
malloc函数及用法
动态存储分配在数组一章中,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变。C语言中不允许动态数组类型。例如:int n;scanf("%d",&n);int a[n];用变量表示长度,想对数组的大小作动态说明,这是错误的。但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,用数组的办法很难解决。为了解决上述问题转载 2017-06-20 01:03:02 · 366 阅读 · 0 评论 -
malloc函数及用法
动态存储分配在数组一章中,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变。C语言中不允许动态数组类型。例如:int n;scanf("%d",&n);int a[n];用变量表示长度,想对数组的大小作动态说明,这是错误的。但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,用数组的办法很难解决。为了解决上述问题原创 2017-06-21 10:32:03 · 290 阅读 · 0 评论 -
函数原型!!
函数原型就是使用一个函数前,对一个函数的预先的一个声明,说明下面要用到这样一个函数。函数原型一般由函数名、参数表、返回值类型组成。函数原型不是必需的。如果你对这个函数的完整定义出现在使用这个函数之前,就不需要函数原型了。char Get(int i)这样一个函数在使用时,就像这样调用:c=Get(a);其中a是预先定义好的一个int,然后函数执行时,a的值就是Get函数中的i,Ge原创 2017-07-01 00:08:14 · 589 阅读 · 0 评论 -
在C语言中什么是语义错误??
一般的程序错误,粗略一点分的话,可以大致分为语法错误和语义错误。语法错误可以看作是编码出现了违反C语言规则的错误,一般编译或者链接时,都会报错的。而语义错误,也可以叫做逻辑错误,也就是说你的代码完全符合C语言的规范,不会出现编译/链接的错误,但是,在逻辑上有错误。举个简单的例子,加入编一个代码来统计int数组a的成员总和,成员总数为N:for(int i=0;i<N;i++;)原创 2017-07-01 15:22:45 · 128454 阅读 · 0 评论 -
C语言编程中return 0是必须的吗?
return在C语言中不是必须的。C语言中的函数定义分为函数入口和函数出口。当有入口参数或者出口参数时,需要说明参数的数据类型。如定义一个延时函数,入口参数为延时时间,延时后不需要返回参数。因此可以定义如下:void delayms(unsigned int T){...}void代表不需要返回值,也就是不需要使用return。unsigned int T代表入口参数。原创 2017-07-02 20:56:16 · 25131 阅读 · 2 评论 -
c语言逻辑思维
人有逻辑思维能力 ,语言没有.人可以逻辑地组织语言,语言可以被(人)组织得有逻辑.以下是学习啦小编为大家准备的c语言逻辑思维,希望大家喜欢! c语言逻辑思维 1.如何问问题? 有甲、乙两人,其中,甲只说假话,而不说真话;乙则是只说真话,不说假话。但是,他们两个人在回答别人的问题时,只通过点头与摇头来表示,不讲话。有一天,一个人面对两条路:A与B,其中一条路是通向京城的,而另一条路转载 2017-06-25 13:14:18 · 2639 阅读 · 0 评论 -
C语言及如何学
C语言本身只提供必要的语言特性,其它复杂一点功能如文件处理、数学计算等等都以库函数方式提供,甚至连malloc、free这种“必须有”的功能,也是以标准库函数的方式提供,而不是作为C语言核心出现。C语言也是一个比较少见的应用领域极为广泛的语言。比如编写操作系统这种高难问题,只有C++、汇编语言可以做到。C语言可以编写服务器端软件如Apache、Nginx,或者编写GUI程序,如GTK。大多数程转载 2017-06-25 13:02:36 · 612 阅读 · 0 评论 -
signed 和 unsigned 区别
所有的整型类型都有两种变体:signed 和 unsigned。 有时候,要求整型变量能够存储负数,有时候则不要求。没有使用关键字unsigned生命的整型变量都被视为无符号的,这种变量可以为正,也可以为负;而unsigned整型变量只能为正signed 和 unsigned 整型变量占用的内存空间大小相同,而signed整型变量的部分存储空间被用于存储指出该变量是为正还是为负的信息,原创 2017-07-04 21:38:09 · 1825 阅读 · 0 评论 -
C的单双引
不细说了,双引号是字符串单引可以输出ASCII码。原创 2017-07-04 22:22:37 · 193 阅读 · 0 评论 -
c buffer
就是缓冲区,临时存数据用的一块内存。它一般用来定义数组,因为它本身的意思就是“缓冲区”,在C语言里,数组就是个缓冲区,所以用常用它。原创 2017-07-20 17:49:14 · 1618 阅读 · 0 评论 -
为什么要有输入输出缓冲区
数据缓冲这个东西,就是因为数据被输入后在处理的时候需要一定的时间,为了输入接着输出,零时差,就需要缓冲了,先预读并处理一部分信息,然后开始输出,在输出的同时进行后面的输入和处理,然后等缓冲的部分输出完后,另一部分的数据也处理完毕了,就可以接着输出了。根据处理速度的不同,需要的缓冲区大小也是不同的。倘若没有这个缓冲,那么就会很卡了,断断续续的数据流,因为处理不完。实际上缓存、内存、显存都是这种东西。转载 2018-02-01 20:56:37 · 1418 阅读 · 0 评论