摘要:
因为大学上课时候,经常是在主函数中做处理,直接用cout语句输出到显示设备,所以一直在用void main(). 直到后面具体编程的时候,才发现void main()这种用法是按 C89(C语言的早期标准)规定的,main() 是可以接受void返回值的。Brian W. Kernighan 和 D 阅读全文
摘要:
char *strA() { char str[] = "hello word"; return str; } 上述程序有什么问题? 简单的来说,str是个局部变量的地址,作为返回值,有可能被提前回收。 那么局部变量可以作为函数的返回值吗,这个问题不能一概而论。局部变量作为返回值时,一般是系统先申请 阅读全文
摘要:
字符串的sizeof和strlen 考虑下面的问题: char a[] = "abcdef"; char b[20] = "abcdef"; string s = "abcdef"; cout<<strlen(a)<<endl; // 6,字符串长度 cout<<sizeof(a)<<endl; / 阅读全文
摘要:
strlen:(1)函数 (2)只能用char*作为参数,且必须是以‘\0’结尾的,不计算\0 (3)由于是函数,当数组作为参数时,退化为指针 (4)运行时才计算sizeof:(1)运算符,结果类型为size_t (2)可以用类型做参数,比如 short f(); sizeof(f())相当于siz 阅读全文
摘要:
在c/c++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。(1)栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。(2)堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制, 阅读全文
摘要:
这是为什么呢? 1.首先,我们需要知道,编译器不同,int型占的字节数也是不同的。这里涉及到概念问题。关于各种数据类型到底占多少位,网上的说法没有总结的说法,下面我个人总结一下,欢迎批评 (1)固定概念,一个字节由8 bits组成。 (2)固定概念,通常int型占一个字长,short型占半个字长,l 阅读全文
摘要:
很多情况下,为了整个程序的方便,我们会使用宏定义,但在宏定义中有很多细节。宏定义只是单纯的进行文本替换,在编译前就已经替换完成,不做表达式计算。 (1)宏名一般用大写 (主要是为了和变量区分,没有硬性要求) (2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小 阅读全文
摘要:
1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。 在许多种 阅读全文