![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
liujiejesse
这个作者很懒,什么都没留下…
展开
-
C语言中用qsort()快速排序
C语言中排序的算法有很多种,系统也提供了一个函数qsort()可以实现快速排序。原型如下: void qsort(void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *));转载 2009-08-14 17:32:00 · 590 阅读 · 0 评论 -
const
char greeting[] = "Hello";char *p = greeting; // non-const pointer, // non-const dataconst char *p = greeting; // non-const转载 2009-08-20 00:18:00 · 872 阅读 · 0 评论 -
位字段
#include struct { unsigned char is_keyword :1; unsigned char is_extern :1; unsigned char is_static :1; unsigned char is_a :1; unsigned char is_b :1; unsigned char i转载 2009-08-19 22:18:00 · 754 阅读 · 0 评论 -
变长参数表
#include #include void minprintf(char * fmt, ...){ va_list ap; char *p, *sval; int ival; double dval; va_start(ap,fmt); for(p=fmt;*p;p++) { if(*p !=转载 2009-08-19 22:45:00 · 789 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不转载 2009-08-22 23:05:00 · 724 阅读 · 0 评论 -
__FILE__ __LINE__
__FILE__ 包含当前程序文件名的字符串__LINE__ 表示当前行号的整数__DATE__ 包含当前日期的字符串__STDC__ 如果编译器遵循ANSI C标准,它就是个非零值__TIME__ 包含当前时间的字符串例如:输出当前程序文件名的程序:#include int main(void){ printf("%s",__FILE__); return 0;}转载 2009-08-31 12:49:00 · 1076 阅读 · 1 评论 -
sizeof 用法总结
double* (*a)[3][6]; cout<<sizeof(a)<<endl; // 4 cout<<sizeof(*a)<<endl; // 72 cout<<sizeof(**a)<<endl; // 24 cout<<sizeof(***a)<<endl; // 4 cout<<sizeof转载 2009-08-31 13:17:00 · 889 阅读 · 0 评论 -
回调函数
回调函数这个东西使用得比较多,其实所谓的回调函数就是函数指针,但在面向对象编程中,往往我们会使用他们达到很巧的目的,比如说类的封装中;或者用得更多的是实现动态绑定;呵呵这不是C++中传说的多态吗.先来个简单的介绍函数指针:#includetypedef int(*callback)(int);using namespace std;class X{ protected:原创 2009-08-31 17:17:00 · 797 阅读 · 0 评论 -
c语言模拟perl python中的数组负数索引
int main(){ int a[] = {1,2,3,4,5}; int i; int * p = a; for (p = a + 4, i = 0; i < 5; i++) { printf("%d ",p[-i]); } return 0;}原创 2010-01-16 16:53:00 · 1354 阅读 · 0 评论 -
#define 引发的问题
1。#include #define square(x) x*xint main(){ int v; scanf("%d",&v); printf("%d/n",square(v+1)); } 输入5 输出却是11预编译后的文件:int main(){ int v; scanf("%d",&v)原创 2009-08-14 19:02:00 · 526 阅读 · 0 评论 -
数组与指针
指针是变量,可以作为赋值语句的左值,可以进行自增自减运算。数组名不是变量。 char amessage[]="ABC"; //定义一个数组char * pmessage = "ABC"; //定义一个指针 _____amessage: | ABC/0 | ___原创 2009-08-14 19:50:00 · 668 阅读 · 0 评论 -
关于time_t,clock_t ,time(),clock(),CLK_TCK, CLOCKS_PER_SEC 的使用
ISO/IEC 9899:1999 标准中有一个宏: CLOCKS_PER_SEC tc2 中的 time.h:没有 CLOCKS_PER_SEC,有一个 CLK_TCK #define CLK_TCK 18.转载 2009-08-14 10:43:00 · 3014 阅读 · 0 评论 -
如何优化C语言代码
[转帖]如何优化C语言代码 作者 huchengxtu 日期 2009-8-1 12:10:001、选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大提高程序执转载 2009-08-02 14:59:00 · 458 阅读 · 0 评论 -
产生随机数
srand(time(NULL));//产生随机数种子rand() % 100 +1;//产生一个1~100以内的随机数.包含头文件是 #include 宏定义 RAND_MAX原创 2009-08-08 10:30:00 · 453 阅读 · 0 评论 -
C语言变量名
A N S I标准规定,标识符可以为任意长度,但外部名必须至少能由前6个字符唯一地区分,并且不区分大小写。这里外部名指的是在链接过程中所涉及的标识符,其中包括文件间共享的函数名和全局变量名。 A N S I标准还规定内部名必须至少能由前3 1个字符唯一地区分。内部名指的是仅出现于定义该标识符的文件中的那些标识符。C语言中的字母是有大小写区别的,因此count Count COUNT是三个不同的原创 2009-08-08 09:59:00 · 3161 阅读 · 0 评论 -
函数指针
#include #include void fun() { printf("Here/n"); } int main() { void (*f)()=fun; // 或者 void (* f)()=&fun; (*f)(); exit(0); }原创 2009-08-11 13:24:00 · 354 阅读 · 0 评论 -
double 和 long double
double和long double都是ANSI C标准的浮点数。但ANSI C并未规定long double的确切精度。所以对于不同平台可能有不同的实现。有的是8字节,有的是10字节,有的是12字节或更多。一般来说long double的精度要高于double, 至少相等,就像int和long int一样。但同一平台也可能不一样,比如MS自己的C/C++/VC++就不一样。好像以前16位的VC+转载 2009-08-08 10:10:00 · 2130 阅读 · 0 评论 -
string类的成员函数c_str()
#include #include using namespace std;int main(){ char * a ="Hello world!/n"; string c=a; string b; cin >> b; const char *d = b.c_str(); //注意是const原创 2009-08-11 00:08:00 · 471 阅读 · 0 评论 -
getline() vector
#include#include#includeusing namespace std;int main(){ int NUM; cout<<"input vetcor size NUM="; cin>>NUM ; //getchar(); fflush(stdin); //输入NUM以后缓冲区中有个一个换行,而getline函数不忽略换行,如果不清空,第一原创 2009-08-11 00:43:00 · 821 阅读 · 0 评论 -
十进制转2-16进制
#include #include #include #include using namespace std;int main(){char digit[16] = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F};int num;cout << "待转换的数据:" ;cin原创 2009-08-10 23:29:00 · 466 阅读 · 0 评论 -
字符串与整数之间的转换
#include #include using namespace std;int main(){ string s="12345"; long int i=strtol(s.c_str(),(char **)NULL, 10);// long int strtol(const char *nptr, char **endptr, int base); 字符串原创 2009-08-11 10:38:00 · 382 阅读 · 0 评论 -
C语言中双字符组(digraph)和三字符组(trigraph)的使用注意事项
某些标点符号,在一些键盘上是无法输入的,所以C提供了这样的替换方式。其中双字符记号有六个,也成为双字符组(digraph)::> ]%> }%: #%:%: ##如果上述任何字符组出现在字符常量或字符串字面值中,则不会被解释成双字符组;除此之外,它们一律被解释成双字符组,作用和相应的单一字符记号完全一样。比方说,下列的两个程序代码片段完全等价的,转载 2010-03-05 16:50:00 · 1933 阅读 · 0 评论