
C语言
文章平均质量分 60
NitefullSand
这个作者很懒,什么都没留下…
展开
-
C语言大小写字母转换
C语言void main() { char x=’a’; printf(“请您输入任意大写字母或者小写字母x:\n”); scanf(“%c”,&x); if( x>=’A’ && x<=’Z’) { x=x+32; } else if( x>=’a’ && x<=’z’) { x=x-32; } printf(“%c\n”,x); }原创 2016-11-02 08:43:06 · 2064 阅读 · 0 评论 -
指针变量作为函数参数
在c语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量做函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数内部的数据,并且这些数据不会随着函数的结束而销毁。 像数组、字符串、动态分配地内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递他们的指针,在函数内部可以通过指针来影响这些数据集合。 有的时候,对于整数、小转载 2017-02-22 11:06:49 · 542 阅读 · 0 评论 -
指针作为函数返回值
C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数。下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: #include <stdio.h> #include <string.h> char *strlong(char *str1, char *str2){ if(strlen(str1) >= strlen(s转载 2017-02-22 11:18:03 · 722 阅读 · 0 评论 -
void *buf;int argc,char **argv;
void *buf 是什么意思? void buf 是定义了一个空指针,因为程序里有些数据的类型不确定,所以先定义一个空指针来指向它, 最后使用的时候再做类型强制转换, 如: (int)buf 或 (char*)buf 举个例子: void *malloc(size_t size) 内存动态分配函数malloc的返回值就是一个空指针 用法如下:void *buf ;int* ptr;原创 2017-02-22 15:00:57 · 795 阅读 · 0 评论 -
宏
https://onevcat.com/2014/01/black-magic-in-macro/入门很多人在介绍宏的时候会说,宏嘛很简单,就是简单的查找替换嘛。嗯,只说对了的一半。C中的宏分为两类,对象宏(object-like macro)和函数宏(function-like macro)。对于对象宏来说确实相对简单,但却也不是那么简单的查找替换。对象宏一般用来定义一些常数,举个例子://Thi转载 2017-03-03 15:15:45 · 390 阅读 · 0 评论 -
GNU m4
GNU m4简介m4是一种宏处理器,它扫描用户输入的文本并将其输出,期间如果遇到宏就将其展开后输出。宏有两种,一种是内建的,另一种是用户定义的,他们能接受任意数量的参数。除了做展开宏的工作之外,m4内建的宏能够加载文件,执行Shell命令,做整数运算,操纵文本,形成递归等等。m4可用做编辑器的前端,或者单纯作为宏处理器来用。所有的 Unix 系统都会提供 m4 宏处理器,因为它是 POSIX 标准的转载 2017-03-03 14:54:25 · 1045 阅读 · 0 评论 -
函数
access()int _access(char* path,int mode) 功能描述: 检查调用进程是否可以对指定的文件执行某种操作 参数path 是访问文件所在的路径名,mode是访问判断模式,如:R_OK文件是否可读 ,W_OK文件是否可写入 , F_OK 文件是否存在。 例如: _access(“test.txt”,F_OK); 返回0 表示文件在当前路径已存在,返回-1原创 2017-02-24 19:26:37 · 875 阅读 · 0 评论 -
typedef
http://www.cnblogs.com/JCSU/articles/1299051.htmltypedef enum意义:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明:typedef enum workday{ saturday, sunday = 0, monday, tuesday, wednesday, thurs原创 2017-03-06 09:56:24 · 340 阅读 · 0 评论 -
C语言static小结
参考:https://wenku.baidu.com/view/667cacf7f90f76c661371aa8.html对于函数来讲,static的作用仅限于隐藏。eg:当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容:char a = 'A'; //原创 2017-03-10 10:01:02 · 415 阅读 · 0 评论 -
以数据块的形式读写文件
fgets() 有局限性,每次最多只能从文件中读取一行内容,因为 fgets 遇到换行符就结束读取。如果希望读取多行内容,需要使用 fread 函数;相应地写入函数为 fwrite。 fread() 函数用来从指定文件中读取块数据。所谓块数据,也就是若干个字节的数据,可以是一个字符,可以是一个字符串,可以是多行数据,并没有什么限制。fread() 的原型为:size_t fread ( void转载 2017-02-21 19:26:21 · 1310 阅读 · 0 评论 -
以字符串的形式读写文件
fgetc() 和 fputc() 函数每次只能读写一个字符,速度较慢;实际开发中往往是每次读写一个字符串或者一个数据块,这样能明显提高效率读字符串函数fgetsfgets() 函数用来从指定的文件中读取一个字符串,并保存到字符数组中,它的原型为:char *fgets ( char *str, int n, FILE *fp );str 为字符数组,n 为要读取的字符数目,fp 为文件指针。 返转载 2017-02-21 19:09:36 · 776 阅读 · 0 评论 -
什么是野指针,如何避免?
野指针:指向不确定地址的指针变量。(即没有初始化)使用野指针易因内存泄露出现段错误。而造成内存泄露的原因有两个: 1.访问了没有权限的内存(平时我们正确使用指针的时候,系统应经将相应的内存分配给用户,但是如果指向没有分配的内存,系统会判定我们没有权限) 2.访问了已经释放了的内存。 因为野指针主要是因为我们平时编程习惯造成的,因此我们只能避免野指针的出现,而不能杜绝。(请注意用词)我们在编程时转载 2017-02-20 14:16:42 · 538 阅读 · 0 评论 -
Segmentation fault (core dumped)
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump).在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、trace信息输出。该种类型的错误转载 2017-02-21 10:04:57 · 1022 阅读 · 0 评论 -
Perror&Printf
perror(); 是错误输出函数。 用来输出当前的错误信息,如果没有错误就显示ERROR 0。 例如: perror(“ddddddddddddd”); 在没有错误的情况下就输出: ddddddddddddd : error 0 . 1.功能:打印出perror(const char *s)中s字符串以及错误原因字符串。 2.表头文件:#include<stdio.h>转载 2017-02-21 10:21:22 · 537 阅读 · 0 评论 -
理解指针
计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样。eg:int占用4个字节,char占用1个人字节。为了正确访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。我们将内存中的编号称为地址或i指针。 下面的代码演示了如何输出一个地址: #include <stdio.h> int main(){原创 2017-02-21 13:59:15 · 281 阅读 · 0 评论 -
指针变量
数据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。 在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值就是某份数据的地址,这样的一份数据可以是数组、字符串、函数,也可以是另外的一个普通变量或指针变量。 现在假设有一个 char 类型的变量 c,它存储了字符 ‘K’(ASCII码为十进制数 75),并占用了地址为 0X11A 的内存(地址通原创 2017-02-21 14:18:11 · 837 阅读 · 0 评论 -
带参宏定义和函数的区别
本质区别:宏展开仅仅是字符串的替换,不会对表达式进行计算,宏在编译之前就被处理掉了,他没有机会参与编译,也不会占用内存。而函数是一段可以重复使用的代码,会被编译,会给他分配内存,每次调用函数就是执行这块内存中的代码。 eg1:用函数计算平方值 #include <stdio.h> int SQ(int y){ return ((y)*(y)); } int转载 2017-02-21 16:59:36 · 2195 阅读 · 0 评论 -
文件的打开与关闭
文件的打开(fopen函数)fopen()函数用来打开一个文件,它的原型为:FILE * fopen(char *filename,char *mode);filename为文件名(包括文件路径),mode为打开方式,它们都是字符串。fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个FILE类型的结构体变量中,然后将该变量的地址返回。FILE是在stdi转载 2017-02-21 18:38:31 · 902 阅读 · 0 评论 -
以字符形式读写文件
读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块)。 以字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件中写入一个字符。主要使用两个函数:fgetc()和fputc()。 字符读取函数fgetcfgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。它的原型为: int fgetc (FILE *fp);fp 为转载 2017-02-21 18:55:41 · 597 阅读 · 0 评论 -
自己编写makefile
http://www.cnblogs.com/wang_yb/p/3990952.html原创 2017-03-13 13:42:14 · 323 阅读 · 0 评论