![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++语法
s4ul
这个作者很懒,什么都没留下…
展开
-
memset()只有在初始化-1,0时才会正确。
#include <stdio.h> #include <string.h> int main() { int array[5]; int a; while(~scanf("%d",&a)){ memset(array,a,sizeof(array)); printf("%d %d\n",array[0],array[1]); } return 0; } 程序功能:初始化数组元素为输入值。 输入: -原创 2020-05-13 07:23:10 · 357 阅读 · 0 评论 -
define各种用法
#define lson 2*i #define rson 2*i+1 #define LS l,mid,lson #define RS mid+1,r,rson #define UP(i,x,y) for(i=x;i<=y;i++) #define DOWN(i,x,y) for(i=x;i>=y;i...原创 2020-04-18 08:34:41 · 634 阅读 · 0 评论 -
运算符重载时,有时返回一个临时变量,有时返回当前类的引用,他们有啥区别?又各有什么用?
首先要明白一点,引用返回比值返回,开销要小。原因是值返回,需要调用类的拷贝构造函数。如果构造一个对象需要的开销比较大,引用返回比值返回更优。但是如果需要返回函数里面的局部变量,就必须是值返回。原因是局部变量生存期只在函数内部,如果返回局部变量的地址肯定出错,因为该变量在函数结束后就被销毁了 看以下重载++的例子 class A { public: A() : a(0), b(0){} A(int ...原创 2020-04-20 15:39:30 · 332 阅读 · 0 评论 -
常量指针(const X*) 和指针常量(X* const)
const X* 类型的指针(指向常量的指针),此指针的地址是一个变量,是可以修改的;但其所指向的内容是常量,是不可以修改的。 例如: 1: char name[5] = "lisi"; 2: const char* pstr = name; 3: pstr = “zhangsan”; // 修改指针的值,OK 4: *pstr = 'z'...原创 2020-04-20 08:28:33 · 226 阅读 · 0 评论 -
函数内的变量能作返回值吗
首先我们要知道c/c++中内存的分配有: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放(就会造成内存泄漏的问题),程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变...原创 2020-04-20 15:30:04 · 681 阅读 · 0 评论