
c语言
文章平均质量分 62
Z_J_T
这个作者很懒,什么都没留下…
展开
-
字符串输入相关
gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。字符串接受结束后自动加'\0'语法:gets(字符数组名或指针);gets(ch);gets(str);原创 2017-09-30 16:09:53 · 346 阅读 · 0 评论 -
define、enum、const
常量yu常变量1.#define MAX 10------c语言定义符号常量#define指令指定一个符号名称代表一个常量。定义符号常量时应“见名知意”。能做到“一改全改”。这是预编译指令,他只是用符号常量代表一个字符串,在预编译只进行字符替换,在预编译后,符号常量就不存在了。(不分配存储单元,只是一个临时符号)2.enum(MAX=10)------枚举型常量A. 枚举值是常量,原创 2017-09-27 21:24:01 · 673 阅读 · 1 评论 -
引用和指针的区别
1. 指针是一个变量,一个实体,开辟空间,存放指向空间的地址。 引用是一个别名,不开辟空间。int a=10;int *p=&a;int &b=a;2. 引用–没有空引用,必须初始化 指针–可以等于NULLint *p=NULL;3. 引用–不分等级,没有所谓的二级引用 指针–有二级,三级,等多级指针int *p; int * *p; int * * *p … 4 . 指原创 2017-12-01 13:10:32 · 302 阅读 · 0 评论 -
for循环的几种写法
1.for(int y=x;y>0;y=y/10){num++;}2.int y=x;for( ; y>0 ; y/10 ){num++;}3.int y=x;for( ; y>0 ; ){num++;y/10;}4.int y=x;for( ; ; ){if(y{break;原创 2017-10-20 22:51:27 · 4595 阅读 · 0 评论 -
sizeof 函数
sizeof函数1.与strlen()比较strlen: 计算字符数组的字符数,以“\0”为结束判断,不计算‘\0’。sizeof: 计算数据(包括数组 变量 类型 结构体等)所占内存空间,用字节数表示(注意:sizeof用在字符数组计算'\0'的大小)2.静态数组sizeof与指针比较指针均可视为变量类型的一种。所有指针变量的sizeof的操作结果均为4例1.原创 2017-09-24 11:27:15 · 423 阅读 · 0 评论 -
printf()函数的用法
printf()函数的用法1.printf()函数的调用格式为: printf("",);A格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出;另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。B参量表需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开原创 2017-09-24 14:14:28 · 856 阅读 · 0 评论 -
指针
‘ * ’的意义void main(){ int a=10, b=20; int *p=NULL;}c = a * b;//乘法 int * p; //类型 * 标识符==>指针*声明,与变量名结合,不是与类型结合(int*) p,s;//编译器认为(类型名 *),识别为强转*p ;//指向void main(){ int a; int *p;原创 2017-11-13 18:55:04 · 209 阅读 · 0 评论 -
函数返回类型和形参
函数返回类型1、int *add—–return &c; 2、int add——return c; 3、局部变量不允许以引用(或者指针)形式返回,函数结束,局部变量生存期就到了int &add(int a,int b){ int c=a+b; return c;//=>return &c}void main(){int x=10,y=20;int z=add(x,y原创 2017-11-13 21:47:08 · 1045 阅读 · 0 评论 -
文件
1. 程序文件:源程序文件,目标文件,可执行文件 数据文件:不是程序,而是供程序运行时读写数据2. 流:数据如流水一样从一处流向另一处3. 二进制文件:以二进制存储(存储在内存的数据映像—映像文件) 文本文件(ASCLL文件):看得懂的文件 10000以二进制文件输出占用4字节 以文本文件输出占用5字节4. 文件缓冲区 内存将缓冲区在以下情况下向磁盘输入数据 1.文件缓原创 2017-12-06 12:55:37 · 315 阅读 · 0 评论 -
库函数——字符串
strcat:字符串连接函数函数原型:char *strcat (char *dest,char *src);头文件:# include函数功能:将两个字符串连接合并成一个字符串,也就是把字符串src连接到字符串dest后面,连接后的结果放在字符串dest中返回值:指向字符串dest的指针char *My_Strcat(char *dest, char *src)//字符串原创 2017-12-21 00:37:22 · 419 阅读 · 0 评论 -
主函数
主函数可以有形参int main(int arg, char *argc[],char *env[]){ return 0;}arg:参数个数argc[ ]:指针数组,存放的是指向每一个参数的指针,他的第一个元素即 argv[0]为编译生成的可执行文件名(包括路径), int argc表示argv的大小,是实际参数个数+1env[ ]:环境变量 main函数中原创 2017-12-21 00:23:59 · 422 阅读 · 0 评论 -
循环~跳转表
1、空语句:只包含一个分号的语句。2、if 语句,for 语句,while,do while() for 语句:适用于已知循环次数,for循环一般都有输出执行语句,除非定义的循环初始条件满足退出条件,直接退出循环。while():适用于未知循环次数,while()加循环条件,一但条件不满足就不执行语句。do while():适合于循环至少执行一次的,先执行后判断。do w原创 2017-12-21 00:19:57 · 496 阅读 · 0 评论 -
结构体
struct Student// struct自定义类型{ int id; char name[20]; char sex[3]; int age; float score;};void main(){ int a;// Student st; a=10; st.id=1;//点运算符 //st.name = '原创 2017-11-28 22:32:35 · 364 阅读 · 0 评论 -
数组
区别1.char ch[10]={"yhping"};ch[10],指定了这个char数组的长度是10[y][h][p][i][n][g][\0][\0][\0][\0]2.char ch2[10]={‘y’,'h','p','i','n','g'};[y][h][p][i][n][g][\0][\0][\0][\0]3.char *str="yhping"对于字符原创 2017-09-29 22:18:29 · 259 阅读 · 0 评论 -
strlen()和sizeof()
strlen()和sizeof()1.strlen()是函数,求字符串实际长度,从开始到遇到第一个'\0',运行时才能计算出来。(长度不包括‘\0’)2.sizeof() 是运算符,返回变量声明后所占的内存数,可以用类型作参数.区别:1.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。2.sizeof还可以用函原创 2017-09-30 16:00:34 · 288 阅读 · 0 评论 -
跳转语句
goto: goto语句是一种无条件转移语句goto 语句的使用格式为: goto 语句标号;1.标号需要申请,在程序开头写label ,,……;2.标号必须为四位以内的正整数。3.在该段落内还需要有:语句表示将要转向的方向。其中标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。另外标号必须与g转载 2017-10-13 23:03:13 · 433 阅读 · 0 评论 -
3种指针
1.野指针:未初始化的指针,指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。野指针主要是因为这些疏忽而出现的删除或申请访问受限内存区域的指针。一.指针变量未初始化任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它转载 2017-10-20 22:59:26 · 393 阅读 · 0 评论 -
声明与定义
区别一:从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量被使用,编译器并不会为它分配任何内存。而定义就是分配了内存。例1:void Func(){int a;int b=1;a=0;}对于第一行代码,编译器不会做任何事,它不会为它在栈中分配一点东西,直到第三句,a=0;时,编译器才会将其压入栈中。而对于int b=1;这一句,编译器就会生成一条指令,为它赋值转载 2017-10-16 18:40:55 · 377 阅读 · 0 评论 -
数组与指针区别和联系
1.在函数中数组退化为指针 int ar[10]={12,23,34,45,56,67,78,89,90,100}; ar[0]=100;//*(ar+0)=100 for(int i=0;i2.ar [ ]={ }; int * p=ar; &ar =>首元素地址 &p =>指针地址3.ar++;//(错误)数组不能自加和赋值 p++;//指针可以4.数组指针(也称行指针) 定义原创 2017-10-22 14:02:49 · 328 阅读 · 0 评论 -
switch
switch语句,又称开关语句,用于处理多分支结构的条件选择语句,使用switch语句直接处理多个分支其一般形式为:switch(表达式){ case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break;…… c转载 2017-10-13 23:34:05 · 542 阅读 · 0 评论 -
作用域
全局作用域局部作用域块作用域int a=10; / /全局变量void main(){int a=200; / /局部变量if( a==200) { int a =300; / /块作用域 printf("%d",a); }}==>编译成功当局部变量与全局变量命名冲突时,在以上情况是打印不出局部变量原创 2017-10-12 23:48:49 · 259 阅读 · 0 评论 -
静态数据成员与非静态数据成员的区别
数据成员:静态数据成员是类的一部分,为类的所有实例共享(静态区); 非静态数据成员,类的每个实例都有一份拷贝(动态区)。静态数据成员的访问:静态数据成员是类的一部分,在产生任何实例之前已经存在,通过 类名::静态成员变量名 访问。函数成员(都在代码区):静态函数成员与非静态函数成员都为类所有,对象并不存在函数的拷贝。静态成员函数和非静态成员函数的根本区别在于非静态函数由对象名.或者对象指针->转载 2017-11-02 14:24:19 · 4670 阅读 · 0 评论 -
&
1、位与char a=5; //a=>0000 0101char b=18; //b=>0001 0010char c=a&b;//c=>0000 0000&只能对整型操作2、引用viod mian(){ int a=10; int &b=a;//==>int *const b=a int *p=b;//==>int *p=&*b}注意: 1、无空引用,必须初始原创 2017-11-02 15:18:37 · 245 阅读 · 0 评论 -
二维数组
int a3,a2,a1,a0; int *p3,*p2,*p1,*p0;//*p3指向a3;*p2指向a2…. int **s=&p0; s+1;//s指向p0,加一指向p1,加4个字节 *s+1;//*s是p0的值,p0存放a0地址,加1加到a1的地址,所以加4个字节 **s+1;//**s是a0的值,加一,数值加一,不加字节char a3,a2,a1,a0; char *p3,原创 2017-11-13 19:24:06 · 332 阅读 · 0 评论 -
why静态变量只能被初始化一次?
函数1int fun() { static int i=0; i++; return i; } 当fun函数被调用时,i会一直++函数2 int fun() { int i=0; i++; return i; } 当函数被调用时只会return 1;因为: 1、这两个变量i同名但是不同意义 静态变量:作用在原创 2017-11-02 14:47:27 · 2932 阅读 · 2 评论 -
#define PINT int * 与 typedef int * SINT;
#define PINT int * 与 typedef int * SINT; 区别#define 宏命令,在编译前,由预处理器做替代,如同文本编辑的替代命令,把程序中的所有遇到的词,全部替代。#define PINT int* 就是把所有的词 PINT 替换成 int * ,替换完毕再编译。 int* x; 和pint x; 的声明是等价typedef int原创 2017-09-29 21:23:11 · 460 阅读 · 0 评论 -
BF算法与KMP算法
BF算法两个字符串 str sub 算法基本思想: 初始 i=0,j=0 1、当str[i]==sub[j]时i++,j++; 2、当str[i]!=sub[j]时,i=i-j+1,j=0; 3、当j>=strlen(str)或者i>=strlen(sub)结束BF 算法的时间复杂度是:O(mn) m 代表主串的长度, n 代表子串的长度。 代码实现:int原创 2018-01-28 18:00:54 · 794 阅读 · 0 评论