C++面试速成1
创始人
2025-06-01 17:59:21
  1. 在main函数之前先后指向的代码可能是什么呢?

main函数之前:

  • 设置栈指针

  • 初始化静态变量和全局变量。

  • 将未初始化部分的全局变量赋初值。例如short,int,long=0;

  • 全局对象初始化,在main之前调用构造函数,这是可能会执行前的一些代码

  • 将main函数的参数argc,argv等传递给main函数,然后才真正运行main函数

  • __attribute__((constructor))

main函数之后

  • 全局对象的析构函数会在main函数之后执行;

  • 可以用 atexit 注册一个函数,它会在main 之后执行;

  • __attribute__((destructor))

2 指针和引用的区别:

  • 指针是一个变量,存储的是一个地址,引用跟原来的变量实质上式一个东西,是原变量的别名。

  • 指针可以有多级,引用只有一级

  • 指针可以为nullptr,引用不能为nullptr且定义时必须初始化。

  • sizeof指针得到本指针的大小,sizeof引用得到所指向变量的大小。

  • 当把指针作为参数传递时,也是将实参的一个拷贝传递给形参,两者地址相同,但不是同一个变量,在函数中改变这个变量的指向不影响实参,而引用可以。(!!!)

  • 引用本质是一个常指针,同样会占用四字节,指针是具体的变量,需要占用存储空间。

  • 引用一旦初始化之后就不可以改变了。不存在指向空的引用。

针对第四条测试代码:

int a = 10;int& ya = a;int* pa = &a;char b = 'a';char& yb = b;cout << "a的大小为" << sizeof(a) << endl;cout << "a的引用大小为" << sizeof(ya) << endl;cout << "a的指针大小为" << sizeof(pa) << endl;cout << "b的大小为" << sizeof(b) << endl;cout << "b的引用大小为" << sizeof(yb) << endl;

针对第五条测试:

void test(int *p)
{int a=1;p=&a;cout<

3 什么时候用指针,什么时候用引用呢?

引用能解决问题的就首选引用,否则用指针。

4 堆和栈的区别。

栈空间默认4M,堆区一般是1G-4G,而且空间存储不连续。

5 既然有了malloc/free,c++中为什么还需要new/delete呢?

malloc/free和new/delete都是用来申请内存和回收内存的。在对非基本数据类型的对象使用的时候,对象创建的时候还需要执行构造函数,销毁的时候要执行析构函数。而malloc/free是库函数,是已经编译的代码,所以不能把构造函数和析构函数的功能强加给malloc/free,所以new/delete是必不可少的。

6 strlen和sizeof区别?

  • sizeof是运算符,并不是函数,结果在编译时得到而非运行时。strlen是函数。

  • 因为sizeof值在编译时确定,所以不能用来得到运行时分配存储空间的大小。

7常量指针和指针常量。

常量指针:指针指向的内容一旦确定后便不能改变,但是指向地址中存储的值可以改变。

一般可以这样理解:const 在 * 之后, 例如int * const p;

指针常量:指针指向的一旦确定后,地址中存储的值就不能改变了。但是指向可以改变。

一般可以这样理解 const 在 * 之前。例如 const int *p;

ps:常量指针就是引用。

代码展示:

// 常量指针: 指向则不能改变了,但是可以改变值。int a = 10;int b = 12;int* const p = &a;cout << *p << endl;// 这里会报错,编译就过不去。//p = &b;// 指针常量:引用关系可以改变,但是被引用对象的值不能改变。int a = 10;int b = 12;const int* p = &a;cout << *p << endl;p = &b;cout << *p << endl;//这里会报错,编译过不去。//*p = 100;

相关内容

热门资讯

豆包手机重启限量发售!此前传被... 本文来源:时代周报 作者:何珊珊因AI接管功能迅速走红的豆包手机再次开放少量购买资格,此前它已接连深...
治不了阿尔兹海默还治不了你 今天看到复星医药准备花14亿把神药公司绿谷给买了,那乃悟作为绿谷的老朋友高低得来两句。绿谷现在最广为...
放弃控制权、索赔额大减36%!... 广州轻工工贸集团有限公司(下称“广州轻工集团”)放弃良品铺子了。12月16日,良品铺子发布公告称,广...
知名富翁疯狂代孕,吓坏美国法官... 近日,有媒体报道,一位中国亿万富翁在美国 “疯狂”代孕,吓得法官否了他的亲权申请。而这位富翁,正是多...
用12个问题,开启更有钱的20... 点击 “简七读财” ,发送消息“ 理财 ”小白轻松入门~晚上好,我是简七~上周我去了一趟普陀山,在...