CPP
文章平均质量分 70
LemintC
这个作者很懒,什么都没留下…
展开
-
2020-11-27
struct A { int i; int j;};int main(){ int *i; struct A *a = 0; i = &(a->j);}指针a的值是0,&(a->j)会报访问错误么?不会。main: pushq %rbp movq %rsp, %rbp movq $0, -8(%rbp) movq -8(%rb原创 2020-11-27 14:44:53 · 91 阅读 · 0 评论 -
关于带返回值的函数不返回值———测试千行,不如反汇编一行
int foo(int i, int j){ int k = i+j;}int main(){ cout << foo(3,4) << endl;}上述代码在g++编译器环境下,能够顺利编译,也能够顺利运行。但是输出的是什么值呢?答:这其实取决与你的编译器,反汇编后就可以看出,如果编译器在foo中的反汇编代码中使用了%rax,那么返回值是%rax中的值...原创 2019-11-13 14:48:22 · 601 阅读 · 0 评论 -
关于vector的一个bug
vector<int> vInt={};int i = vInt.size()-1;/* vector<int>::size_type是vector容器的大小类型,其本质是一个无符号数,将其减1的时候,如果容器大小为0的话,就会发生溢出。*/...原创 2019-11-13 11:05:32 · 231 阅读 · 0 评论 -
一些疑问待解决
int main(int argc, char* argv[]){ int n = stoi(argv[1]); vector<int> vInt(n, 0);}上述代码中使用一个main函数的参数来初始化vInt。就是说vInt的大小在运行的时候才能够确定,那么vInt的空间分配是否应该是动态的在堆中分配的????那么vInt的应该手动分配与销毁的???那么上述代码能否顺...原创 2019-08-06 09:40:19 · 141 阅读 · 0 评论 -
震惊!5句话搞定所有CPP的复杂类型声明
什么叫搞定:任意给一个类型声明语句,能够判断其是争取的还是错误的,如果是正确的,其是什么含义。什么叫复杂类型声明:融合指针,引用,const,数组,函数声明,函数指针等各种元素的类型声明。对象是一块具有类型的内存空间;*与&都是可以做为类型修饰符使用,用于修饰类型;const是对象修饰符,用于修饰对象,表示该对象的内容不能改变;引用不是对象,引用初始化后与某个对象绑定后不能再...原创 2019-08-08 17:02:22 · 296 阅读 · 1 评论 -
关于C++一些最最最基本的概念的理解
对象(C++术语): 就是一块内存空间,两个维度来描述一块内存空间:地址+内容。变量则是一个有名字的对象(C++术语)。类型: 规定了如何解释该类型对象(C++术语)的那一块内存空间,以及在这块内存空间上能够实施的操作。表达式: 由运算符(函数)与运算对象[1]构成,共同表达了一个计算过程。其中:运算符表达如何计算,运算对象表达计算什么。[2]语句(代码块): 规定了如何将简单表达式组合成复...原创 2019-08-14 09:23:21 · 300 阅读 · 0 评论