c语言
文章平均质量分 77
bqxdrs012
这个作者很懒,什么都没留下…
展开
-
inline的用法
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline转载 2017-10-11 22:16:29 · 144 阅读 · 0 评论 -
scanf gets
scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。char string[15]; gets(string); /*遇到回车认为输入结束*/scanf("%s",string); /*遇到转载 2017-11-14 16:31:08 · 215 阅读 · 0 评论 -
静态变量,非静态变量
静态变量:静态变量的类型关键字是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量, 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 对于自动变量,它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。 由此看来,一个变量原创 2017-11-14 16:22:38 · 365 阅读 · 0 评论 -
野指针和悬空指针
野指针:野指针指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为NULL避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。(1)成因野指针主要是因为这些疏忽而出现的删除或申请访问受限内存区域的指针。a.指针变量未初始化:任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。原创 2017-11-14 15:51:13 · 9095 阅读 · 0 评论 -
动态开辟二维数组
一、二维数据的内存空间动态分配方法一:void malloc2D_1(int **&a) { a = new int*[xDim]; for(int i=0;i<xDim;i++) a[i] = new int[yDim]; assert(a!=NULL); } int main() { int转载 2017-11-18 16:11:47 · 395 阅读 · 0 评论 -
内存泄漏
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 程序中所用的数据分别存放在静态存储区和动态存储区中。静态存储区数据在程序的开始就分配好内存区,在整个程序执行过程中它们所占的存储单元是固定的,在程序结束时就释放,因此静态存储区数据一般为全局变量。动态存储区数据则是在程序执行过...原创 2017-11-18 15:44:16 · 231 阅读 · 0 评论 -
指针与数组
1.指针操作数组快于下标操作数组2.数组的空间分配.如int a[10];——会在空间分配出40个相邻的内存单元来(10*4)。注意事项:a、数组不可以进行++ar运算;也不可以ar=NULL;//数组名退化成指针后,不可以++ar和赋值操作,因为退化后ar为常量值,代表首元素的地址b、&ar指整个数组的地址,&ar+1则指的是下一个数组的首地址。3.指针操作数组原创 2017-11-11 13:04:49 · 222 阅读 · 0 评论 -
关于break,continue,goto,return语句区别详解
关于break,continue,goto,return语句区别详解(1)break break语句功能: a、 switch语句中,break语句会终止其后语句的执行,退出switch语句。 b、使一个循环立即结束,也就是说在循环中遇到break语句时,循环立即终止,程序转到循环体后的第一个语句去继续执行。 注意事项:原创 2017-10-14 17:34:08 · 432 阅读 · 0 评论 -
声明和定义
声明就是指给除了当前变量或者函数,或者类什么的名字,不给其中的内容,就是先告诉你有这样一个什么类型的变量或者函数,但是这个变量或者函数的具体信息却是不知道的。就好比跟你介绍一个人的时候,声明就是只告诉你这个人叫什么,但是缺不给你说这个人到底怎么样,他有哪些优点,缺点,喜好问题是什么的。定义就不一样了,定义直接告诉你了所有的东西,这个变量是什么,这个函数是什么功能,这个类里面包含了什么东西。原创 2017-10-17 18:00:35 · 388 阅读 · 0 评论 -
可见性
变量的可见性变量的可见性与变量的定义位置,作用域等有关,比如某一全局变量定义在一函数之外(该函数内未再次定义同名变量),但函数也可以使用该变量,此时便是存在且可见的,但对于其他函数中定义的变量,在该函数内就是不可见的,除非有拓展定义。所以,变量存在,但不一定可见。函数的可见性eg:在A.h中声明了函数原型 void Test(void);在A.c中#Include A.h并对Tes原创 2017-10-11 23:20:13 · 353 阅读 · 0 评论 -
sizeof和strlen(2)
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。 char aa[10];cout char aa[10]={'\0'}; cout char aa[10]="jun"; cout 而sizeof()返回的是变量声明后所占的内存数,原创 2017-10-11 23:47:53 · 187 阅读 · 0 评论 -
sizeof和strlen
Sizeof与Strlen的区别与联系:1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函数做原创 2017-10-11 23:39:46 · 216 阅读 · 0 评论 -
C语言中变量的存储方式和生存期
在C语言的一个源文件中从变量的作用域的角度来观察,变量可分为全局变量和局部变量(外部变量) 1、局部变量分量种,一种是函数内部定义的变量,它只能在本函数内使用,此函数外不能使用。另一种是在函数的复合语句(如{}包含的程序块)中定义变量,它只能在本复合语句内使用,该复合语句外不能使用。 2、全局变量是在函数之外定义的变量。全局变量可以为本文件中函数所共用(用extern声明后也可被外原创 2017-10-11 23:36:18 · 1256 阅读 · 0 评论 -
无类型与无类型指针
无类型,又为抽象类型:没有对应的实体,不能直接定义变量,但可以定义指针。无类型指针:成为泛型指针,只要是地址都可以存放,无法对内存进行解释。 (1)失去指针指向的功能; (2)p指针此时不具有+1的能力。(在Gcc编译器下,无类型指针课加1。)void*是一种特别的指针,因为它没有指向的类型,或者说不能原创 2017-11-14 16:54:21 · 1704 阅读 · 0 评论