随笔分类 -  C

摘要:1.野指针有指向,指向未知的内存。 2.空指针没有指向 野指针会使程序崩溃,所以要置零,使之成为空指针。 不一样,野指针是用free释放后的指针,要赋值NULL才能避免野指针的出现,而空指针就是指向NULL。 首先free对应的是malloc;delete对应的是new;free用来释放malloc 阅读全文
posted @ 2016-05-16 11:36 芬乐 阅读(293) 评论(0) 推荐(0)
摘要:1. 指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针 数组指针:a pointer to an array,即指向数组的指针 int* a[4] 指针数组 表示:数组a中的元素都为int型指针 元素表示:*a[i]和 *(a[i])是一样的,因为[]优先级 阅读全文
posted @ 2016-05-16 11:01 芬乐 阅读(225) 评论(0) 推荐(0)
摘要:这种情况下,我有点迷惑,就做了个实验,结论是: 1.当输完scanf的数后,直接按换行,满足条件 getchar() ==‘\n’ 2.当输完scanf的数后,又输入了点其他东西后再按换行,满足条件 getchar != '\n' 阅读全文
posted @ 2016-05-16 08:47 芬乐 阅读(1225) 评论(0) 推荐(0)
摘要:<stdio.h>是直接从系统里边找。 ""是先在本地找,然后在系统里边找。 <>不可以替换"", ""可以提换<> 。 阅读全文
posted @ 2016-05-15 10:50 芬乐 阅读(1094) 评论(0) 推荐(1)
摘要:三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib. 阅读全文
posted @ 2016-05-15 00:20 芬乐 阅读(394) 评论(0) 推荐(0)
摘要:转至:http://my.oschina.net/ypimgt/blog/108265 转至:http://my.oschina.net/ypimgt/blog/108265 Technorati 标签: 指针, typedef, const, define 我们都知道,至少听说过指针对于C语言中的 阅读全文
posted @ 2016-05-13 13:56 芬乐 阅读(1067) 评论(0) 推荐(0)
摘要:1.作用域指的是:在某个区域中可以 访问 该变量 2.存储时期指的是:表示该变量在程序执行期间一直存在,能不能 访问 就是另一回事了 主要需要留意的是:空链接的静态变量 具有代码块作用域或者函数作用域但是却是静态存储时期的 举个例子: static存储类说明符声明具有文件作用域的变量时,表示的是内部 阅读全文
posted @ 2016-05-13 11:32 芬乐 阅读(209) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2016-05-13 11:06 芬乐 阅读(120) 评论(0) 推荐(0)
摘要:1.通常说typedef比#define要好,尤其在有指针的情况下 typedef char* pStr1; #define pStr2 char* pStr1 s1,s2; pStr2 s3,s4; 在上述的变量定义中,s1、s2、s3都被定义为char *,而s4则定义成了char,不是我们所预 阅读全文
posted @ 2016-05-11 10:08 芬乐 阅读(267) 评论(0) 推荐(0)
摘要:摘自百度百科。。。。 1."r" = "rt" 打开一个文本文件,文件必须存在,只允许读 2."r+" = "rt+" 打开一个文本文件,文件必须存在,允许读写 3."rb" 打开一个二进制文件,文件必须存在,只允许读 4.“rb+” 打开一个二进制文件,文件必须存在,允许读写 5."w" = “w 阅读全文
posted @ 2016-05-09 14:09 芬乐 阅读(2119) 评论(0) 推荐(0)
摘要:int num = 12345; 将12345作为二进制数存储到num中 1. fprintf(fp,"%d",num); //把字符'1','2','3','4','5'的二进制编码写入文件中 2. fwrite(&num, sizeof (int), n, fp); 把值12345的二进制编码写 阅读全文
posted @ 2016-05-08 13:44 芬乐 阅读(758) 评论(0) 推荐(0)
摘要:1.声明一个数组,声明是用常量表达式指定数组维数,然后可以勇敢数租明访问数租元素。 2.声明一个变长数租,声明是用变量表达式指定数组维数,然后用数组名来访问数组元素(C99特性) double item[n]; //如果n是一个变量,C99之前不允许这样做。 3.声明一个指针,调用malloc(), 阅读全文
posted @ 2016-05-08 10:43 芬乐 阅读(2524) 评论(0) 推荐(0)
摘要:1. <string.h> strcpy(), strlen(), strcat() 2. <stdlib.h> malloc(), free(), exit() 阅读全文
posted @ 2016-05-08 10:19 芬乐 阅读(139) 评论(0) 推荐(0)
摘要:struct namect { char * fname; //使用指针,而非数组 char * lname; int letters; }; void getinfo(struct namect * pst){ char temp[8]; gets(temp); pst -> fname = (char *)mallco(strlen(te... 阅读全文
posted @ 2016-05-08 09:40 芬乐 阅读(265) 评论(0) 推荐(0)
摘要:-> 在C语言中称为间接引用运算符,是二目运算符,优先级同成员运算符“.”。用法:p->a,其中p是指向一个结构体的指针,a是这个结构体类型的一个成员。表达式p->a引用了指针p指向的结构体的成员a。例如:struct T{ int a; char b;}s;struct T* p=&s;那么,p- 阅读全文
posted @ 2016-05-07 10:59 芬乐 阅读(721) 评论(0) 推荐(0)
摘要:1. int argc 表示你在命令行下输入命令的时候,一共有多少个参数。 2. char *argv[] 代表此可执行文件的存储路径,程序变量。 他的第一个元素即argv[0]为编译生成的可执行文件名(包括路径eg:"F:\VC\Ex1\Debug\Ex1.exe"),从二个元素(argv[1]) 阅读全文
posted @ 2016-05-07 09:47 芬乐 阅读(146) 评论(0) 推荐(0)
摘要:按照新的C99标准,即使函数本身没有定义返回值,编译器也会加上,以返回给激发程序,运行状态。很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 阅读全文
posted @ 2016-05-07 09:27 芬乐 阅读(594) 评论(0) 推荐(0)
摘要:转至:http://blog.csdn.net/zhanzheng520/article/details/10434791 一、格式符含义 1、d格式符:按十进制格式输出。 %d 输出数字长度为变量数值的实际长度 %md 输出m位(不足补空格,大于m位时按实际长度输出) %ld,%mld l(小写字 阅读全文
posted @ 2016-05-07 09:09 芬乐 阅读(3907) 评论(0) 推荐(0)
摘要:1.用了gets后,假如你没有输入任何东西直接【enter】,它将执行下一条命令 2.用了scanf后,直接按了【enter】,它将换行并等待你的输入,直到你输入非【enter】,再执行下一条命令。 不知道其他环境是否如此,反正我用vs2013和QT5.4.1是这样的。 阅读全文
posted @ 2016-05-07 08:42 芬乐 阅读(195) 评论(0) 推荐(0)
摘要:指针和数组存在着一些本质的区别。当然,在某种情况下,比如数组作为函数的参数进行传递时,由于该数组自动退化为同类型的指针,所以在函数内部,作 为函数参数传递进来的指针与数组确实具有一定的一致性,但这只是一种比较特殊的情况而已,在本质上,两者是有区别的。请看以下的例子: char a[] = "1234 阅读全文
posted @ 2016-05-06 11:55 芬乐 阅读(6072) 评论(0) 推荐(1)