![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
linest00
这个作者很懒,什么都没留下…
展开
-
extern
参考了网上资料总结一下1.extern 只是声明,并不是定义,没有分配内存空间。2.标有 extern 是告诉编译器被修饰的可以在本模块或外部模块使用,相反 static 只能本模块使用3.extern C 结果:实现C++与C及其它语言的混合编程。4.extern C 原因:C++有重载的概念,采用了mangled name的机制,给每一个重载版本生成不同名字,一般是...原创 2011-10-14 12:30:31 · 89 阅读 · 0 评论 -
数组的sizeof
用sizeof时,作为参数传递的数组退化成指针,结果是4.非参数时结果是100.[code="c++"]int getSize(char a[100]){ return sizeof(a);}int main(void){ char ch[100]; cout...原创 2011-10-16 15:27:52 · 115 阅读 · 0 评论 -
诡异的溢出利用
不用加减运算符实现输入x输出x-1利用两次溢出,溢出后为0跳出循环。[code="c++"]int f(int x){ int tmp = 1; int res = 0; for(int i=x; i ; ++i) tmp++; for(int i = tmp; i ; ++i) res++; return res;}int ma...原创 2011-10-23 10:42:23 · 80 阅读 · 0 评论 -
mutable 关键字
mutable 意为可变 和 const 语义相反。声明为mutable的变量可以不受const的影响,保持可变性。在类中为了保持类成员不变,成员函数用const修饰但如果需要一个标记变量记录状态,则需要加mutable修饰,这样的变量就好像与类状态无关。...2011-11-18 15:32:11 · 61 阅读 · 0 评论 -
strlen 注意
没初始化的字符数组就不要strlen否则会在内存中一直找到0以下代码会悲剧[code="c++"]str[100];memset(str,0,strlen(str));[/code]strlen返回时无符号,不要进行运算一旦负值就会悲剧[code="c++"]if(strlen("123")-5...2011-12-03 21:47:00 · 100 阅读 · 0 评论 -
malloc 和 calloc
两者都是从堆上申请空间malloc只有一个参数,就是分配大小calloc有两个参数,分别是元素数目和每个元素大小calloc返回一个元素数组而malloc只返回一个空间整体malloc分配的空间不会初始化calloc分配时会初始化...原创 2012-04-03 11:11:35 · 83 阅读 · 0 评论 -
-1.#IND00
使用pow函数做开方操作 pow(-10,1/3.0)结果是奇怪的-1.#IND00查了一下原来pow的第一个参数要是正数,so -pow(10,1/3.0)类似的错误是sqrt(-1) 负数开平方也会同样报错...2012-04-09 16:40:22 · 508 阅读 · 0 评论 -
console 输入输出
读EOF结尾scanf返回读出变量数如果没读出返回-1EOF就是常量-1[code="c"]while(scanf("%d %d",&a,&b)!=EOF){}[/code][code="c++"]while(cin>>a>>b){}[/code]读字符串整行scanf以空格分隔gets以回车分隔[code="c&q原创 2012-04-10 17:06:32 · 163 阅读 · 0 评论