首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++入门必备知识(你真的入门C++了吗?)

注:同一个命名域中不能定义同名变量 //1.普通命 名空间 namespace N1 // N1为命名空间名称 //命名空间中内容,既可以定义变量,也可以定义函数 int a; int Add...2、引用特性 1、引用在定义时必须初始化。 2、一个变量可以有多个引用。 3、引用一旦引用一个实体,再不能引用其他实体。...2.引用在定义时必须初始化,指针没有要求 3.引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体 4.没有NULL引用,但有NULL指针 5.在sizeof...0) #endif #endif 可以看到NULL可能定义为字面常量0,或者定义为无类型指针(void*)常量。...在C++98,字面常量0既可以一个 整形数字,也可以是无类型指针(void*)常量,但是编译器默认情况下将其看成是一个 整形常量,如果要将其按照指针方式来使用,必须对其进行强转(void *)0。

45520

c++入门】引用详解 | auto类型推导 | 范围for循环 | nullptr空指针

☁️常引用 在C++,常引用是指在函数参数列表或变量声明中使用const关键字来修饰引用。常引用作用是限制对引用对象修改。...常引用不允许对引用对象进行修改,即不能通过常引用修改引用对象值。 常引用可以接受非常量对象、常量对象和临时对象作为参数。 常引用可以提高程序效率,因为常引用不需要创建临时变量。...引用在定义时必须初始化,指针没有要求 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体 没有NULL引用,但有NULL指针 在sizeof含义不同:引用结果为引用类型大小...不论采取何种定义,在使用空值指针时,都不可避免会遇到一些麻烦,比如: 程序本意是想通过f(NULL)调用指针版本f(int*)函数,但是由于NULL定义成0,因此与程序初衷相悖。...NULL 定义一个整数常量 0。在 C++ ,也可以使用 NULL 来表示空指针,但更推荐使用更加类型安全 nullptr。

12610
您找到你想要的搜索结果了吗?
是的
没有找到

c++】内联-引用-重载

c++】内联函数 1.1 背景 我们在使用时候,需要特别注意,因为宏是直接替换,由于运算符优先级不同,很容易导致计算失误,在c++,我们很少使用宏,更多使用内联函数 1.2 内联函数概念...【c++】引用 2.1 引用概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用变量共用同一块内存空间。...{ TestRef(); } 注意:引用类型必须和引用实体是同种类型 2.2 引用特性 引用在定义时必须初始化 一个变量可以有多个引用 引用一旦引用一个实体,再不能引用其他实体 void TestRef...引用在定义时必须初始化,指针没有要求 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体 没有NULL引用,但有NULL指针 在sizeof含义不同:引用结果为引用类型大小...【c++函数重载 自然语言中,一个可以有多重含义,人们可以通过上下文来判断该词真实含义,即该词重载 比如:以前有一个笑话,国有两个体育项目大家根本不用看,也不用担心。

6610

C++】——入门基础知识

缺省值必须是常量或者全局变量 4. C语言不支持(编译器不支持) 5. 函数重载 自然语言中,一个可以有多重含义,人们可以通过上下文来判断该词真实含义,即该词重 载了。...引用在定义时必须初始化 2. 一个变量可以有多个引用 3....引用概念上定义一个变量别名,指针存储一个变量地址。 2. 引用在定义时必须初始化,指针没有要求 3....在同一定义多个变量 当在同一行声明多个变量时,这些变量必须是相同类型,否则编译器将会报错,因为编译 器实际只对第一个类型进行推导,然后用推导出来类型定义其他变量 void TestAuto(...void *)0) #endif #endif 可以看到,NULL可能定义为字面常量0,或者定义为无类型指针(void*)常量

4410

最全C语言基础知识梳理总结

数据类型: 常量常量包括字面常量、直接常量和符号常量变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;必须压迫先定义使用;每一个变量定义以确定类型后...h文件是头文件所用后缀。 3、如果使用用户自己定义函数,而且该函数使用函数同一个文件,一般还应该在主调函数调用函数做声明。...局部变量和全局变量: (一)局部变量一个函数内部定义变量是内部变量,它只是在本函数范围内有效,主函数也不能使用其它函数定义变量;不同函数可以使用相同名字变量,他们代表不同对象,互不干扰...在多文件,也可以采用extern声明办法进行外部变量声明。...有时希望某些局部变量只限于本文件引用,而不能其他文件引用,这时就可以用在定义外部变量时外加一个static,这在程序模块化设计中加强了通用性。

1.9K40

C++入门基础

2、一个变量可以有多个引用 3、引用一旦引用一个实体,再也不能引用其他实体。...当然是通过计算机编译器底层汇编来看啊。 引用和指针不同点: 1、引用概念上定义变量别名,指针存储一个变量地址。 2、引用在定义时候就必须初始化,指针没有要求。...3、引用在初始化时引用一个实体之后,就不能引用其他实体,而指针可以在任何时候指向任何一个同类型实体。 4、没有NULL引用,但是有NULL指针。...宏优点和缺点在上述图片中已经很清楚了,那么有没有什么办法能够在这些优点上进行对缺点改变?...C++可以代替宏方案 1、常量定义 换成const enum 2、短小函数定义 换成内联函数 8、auto关键字(C++11) 随着程序复杂化,类型使用也将会是多样化。

12910

C++ 面试必备:常见 C++ 面试题汇总及详细解析

什么是指针? 指针是C++一种数据类型,指针变量存储了一个内存地址,该地址指向某个变量或者对象。指针可以用来访问和修改内存数据,同时也可以通过指针来传递参数和返回值。...多态:多态是指同一个消息可以不同对象解释执行,即不同对象对同一消息作出不同响应。具体来说,多态可以通过虚函数和模板等机制实现。...操作灵活性 数组名是一个常量指针,不能修改,而指针可以重新赋值,指向其他对象。因此使用指针比使用数组名更加灵活,可以在运行时动态确定指向对象。...在C++,extern关键字用于声明一个已经在别处定义变量函数或类引用,从而允许在一个文件中使用在其他文件定义全局变量函数或类。...例如,如果有一个定义一个.h文件,那么在多个.cpp文件可以使用extern关键字来声明这个类引用,从而可以在这些文件中使用这个类成员函数C++函数调用过程?

1.8K30

C++基础语法重点总结

函数重载 说说什么函数重载 函数重载指的是在同一个作用域中,声明了具有相同函数函数,它们参数列表不同,也就是说参数类型不同,参数个数不同,参数顺序不同,返回值同不同都可以。...而C++在取名时候,是将函数名和参数类型首字符结合起来对函数取名,这样就可以区分函数不同了。 拓展:说说函数重载、函数重写、函数定义区分: 在作用域中:函数重载在需要在同一个作用域中。...,有什么好处 引用一般使用在参数和返回值上面。...说一说宏优缺点,有什么解决办法优点是增强代码复用性,比如用宏来定义一个常量,那么在后续代码我或许需要多次用到这个常量。还有就是可以提高性能。...0; } 解决办法使用内联函数常量定义,比如const、enum来替换。

18430

C++基础闯关100题,你能闯多少?【2021超硬核大厂高频面试题】

全局/静态存储区,全局变量和静态变量分配到同一块内存,在以前C语言中,全局变量又分为初始化和未初始化,在C++里面没有这个区分了,他们共同占用同一块内存区。...指针是一个变量,存储一个地址,引用跟原来变量实质上是同一个东西,是原变量别名 指针可以有多级,引用只有一级 指针可以为空,引用不能为NULL且在定义时必须初始化 指针在初始化后可以改变指向...,但不是同一个变量,在函数改变这个变量指向不影响实参,而引用却可以。...内存泄漏一般是指堆内存泄漏,也就是程序在运行过程动态申请内存空间不再使用后没有及时释放,导致那块内存不能再次使用。 20、什么函数不能声明为虚函数?构造函数什么不能为虚函数?...c++引入了智能指针,C++智能指针本质就是避免悬空指针产生。 产生原因及解决办法: 野指针:指针变量未及时初始化 => 定义指针变量及时初始化,要么置空。

1.9K20

C++入门

); printf("%p\n", &ra); } 引用特性 引用在定义时必须初始化 一个变量可以有多个引用 引用一旦引用一个实体,再不能引用其他实体 举个例子: 下面注释语句就是没有初始化...引用在定义时必须初始化,指针没有要求 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何 一个同类型实体 没有NULL引用,但有NULL指针 在sizeof含义不同:引用结果为引用类型大小...auto简介 在早期C/C++auto含义是:使用auto修饰变量,是具有自动存储器局部变量,但遗憾是一直没有人去使用它,大家可思考下为什么?...当在同一行声明多个变量时,这些变量必须是相同类型,否则编译器将会报错,因为编译器实际只对第一个类型进行推导,然后用推导出来类型定义其他变量。...指针空值nullptr NULL实际是一个宏,在传统C头文件(stddef.h) NULL可能定义为字面常量0,或者定义为无类型指针(void*)常量 在C++98,字面常量0既可以一个整形数字

8210

C++初阶】--- C++入门(

缺省值必须是常量或者全局变量; C语言不支持(编译器不支持); 上述第二点,为什么只能在函数声明时给缺省值? 因为缺省参数是在调用阶段使用。...(这里就浅述一下,至于虚拟地址是什么,特性如何,待写到 地址空间 和 线程 时会详细解释)。 二、函数重载 自然语言中,一个可以有多重含义,人们可以通过上下文来判断该词真实含义,即该词重载了。...在C/C++一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接。...一份拷贝,并不在函数栈帧;若2, 4, 6组合,函数变量n别名(地址)返回交给外部变量val,那么在函数栈帧销毁那一刻,val依旧可以找到原函数n位置,类似于野指针问题;若1, 4, 6...引用和指针不同点: 引用概念上定义一个变量别名,指针存储一个变量地址; 引用在定义时必须初始化,指针没有要求; 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体

10110

初级程序员面试不靠谱指南(二)

按照c语言定义,比如,1.5是一个浮点数常量,”roger”这是一个字符串常量,而在C语言中(在C++语言中扩展了const定义,不能完全使用这种理解方式),const并不是一个常量,你可以定义一个...还有一个地方也可以进行证明,在c语言中,case语句里必须是常量,如果const定义真的认为是常量的话,那么在switchcase语句中就可以使用它,但是事实并不是这样,在编译器做这样尝试之后...C++作为一种面向对象语言,可以定义类、成员函数等等是其区别于C语言一个重大特点,const关键字在类使用也是有各种陷阱和容易混淆地方,为了配合下面的说明,我们定义一个类Mobile。...总之,在类可以使用const限制成员函数对成员变量修改,并且可以实现成员函数重载。 下一个问题可能稍微有些颠覆性,怎样看待一个const?...,但是const定义不一定是常量(在C语言中),#define定义内容在C语言中可以使用在数组大小,case语句中,但是const定义不能。

66370

Java基础知识面试题(2020最新版)

变量与方法成员变量与局部变量区别有哪些在Java定义一个不做事且没有参数构造方法用在调用子类构造方法之前会先调用父类没有参数构造方法,其目的是?一个构造方法作用是什么?...多态  所谓多态就是指程序定义引用变量所指向具体类型和通过该引用变量发出方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类实例对象,该引用变量发出方法调用到底是哪个类实现方法...所谓多态就是指程序定义引用变量所指向具体类型和通过该引用变量发出方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类实例对象,该引用变量发出方法调用到底是哪个类实现方法...在Java可以一个定义放在另外一个定义内部,这就是内部类。内部类本身就是类一个属性,与其他属性定义方式一致。 ...理由很简单,方法得到是对象引用拷贝,对象引用及其他拷贝同时引用同一个对象。  很多程序设计语言(特别是,C++和Pascal)提供了两种参数传递方式:值调用和引用调用。

44631

C++基础知识概述

; } 注意:引用类型必须和引用实体是同一类型 引用特性: 1.引用在定义时必须初始化 2.一个变量可以有多个引用 3.引用一旦引用一个实体,再不能引用其他实体 void TestRef() { int...2.引用在定义时必须初始化,指针没有要求。 3.引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体。 4.没有NULL引用,但有NULL指针。...在同一定义多个变量 当在同一行声明多个变量时,这些变量必须是相同类型,否则编译器将会报错,因为编译 器实际只对第一个类型进行推导,然后用推导出来类型定义其他变量 。...  ((void *)0) #endif #endif 可以看到, NULL 可能定义为字面常量 0 ,或者定义为无类型指针 (void*) 常量 。...在C++98 ,字面常量 0 既可以一个整形数字,也可以是无类型指针 (void*) 常量,但是编译器 默认情况下将其看成是一个整形常量,如果要将其按照指针方式来使用,必须对其进行强转(void*

94220

Java基础知识面试题(2020最新版)

变量与方法成员变量与局部变量区别有哪些在Java定义一个不做事且没有参数构造方法用在调用子类构造方法之前会先调用父类没有参数构造方法,其目的是?一个构造方法作用是什么?...多态  所谓多态就是指程序定义引用变量所指向具体类型和通过该引用变量发出方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类实例对象,该引用变量发出方法调用到底是哪个类实现方法...所谓多态就是指程序定义引用变量所指向具体类型和通过该引用变量发出方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类实例对象,该引用变量发出方法调用到底是哪个类实现方法...在Java可以一个定义放在另外一个定义内部,这就是内部类。内部类本身就是类一个属性,与其他属性定义方式一致。 ...理由很简单,方法得到是对象引用拷贝,对象引用及其他拷贝同时引用同一个对象。  很多程序设计语言(特别是,C++和Pascal)提供了两种参数传递方式:值调用和引用调用。

32710

【C→C++】打开C++世界大门

缺省值必须是常量或者全局变量(一般不用全局变量) C语言不支持缺省参数(编译器不支持) 5. 函数重载 自然语言中,一个可以有多重含义,人们可以通过上下文来判断该词真实含义,即该词重载了。...引用在定义时必须初始化,指针没有要求(当然最好进行初始化) 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体 没有NULL引用,但有NULL指针 在sizeof...补充:C++建议用const和枚举enum代替宏定义常量 从宏这些优缺点出发,C++又引入了一个概念——内联函数。 7.1 概念 那什么是内联函数呢?...在同一定义多个变量 当在同一行声明多个变量时,这些变量必须是相同类型,否则编译器将会报错,因为编译器实际只对第一个类型进行推导,然后用推导出来类型定义其他变量。...所以要想NULL调用第二个函数: 在C++98,字面常量0既可以一个整形数字,也可以是无类型指针(void*)常量,但是编译器默认情况下将其看成是一个整形常量,如果要将其按照指针方式来使用

13410

30道最常问Java基础面试题

Java和C++区别**我知道很多人没学过C++,但是面试官就是没事喜欢拿咱们Java和C++比呀!没办法!!!就算没学过C++,也要记下来!...**多态**所谓多态就是指程序定义引用变量所指向具体类型和通过该引用变量发出方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类实例对象,该引用变量发出方法调用到底是哪个类实现方法...**从语法形式上,看成员变量是属于类,而局部变量是在方法定义变量或是方法参数;成员变量可以public,private,static等修饰符所修饰,而局部变量不能访问控制修饰符及static...hashCode() 定义在JDKObject.java,这就意味着Java任何类都包含有hashCode() 函数。...从另一角度来说,进程属于操作系统范畴,主要是同一段时间内,可以同时执行一个以上程序,而线程则是在同一程序内几乎同时执行一个以上程序段。**30. 线程有哪些基本状态?这些状态是如何定义?

27710

整理了70道C语言与C++常见问答题

1 变量声明和定义什么区别 变量定义变量分配地址和存储空间, 变量声明不分配地址。一个变量可以在多个地方声明, 但是只在一个地方定义。...全局变量是整个程序都可访问变量,谁都可以访问,生存期在整个程序从运行到结束(在程序结束时所占内存释放); 而局部变量存在于模块(子程序函数,只有所在模块可以访问,其他模块不可直接访问,模块结束(...21 指针常量常量指针区别 指针常量是指定义一个指针,这个指针值只能在定义时初始化,其他地方不能改变。...向下兼容性,把C++最基本对象单元规定为class而不是struct,就是为了避免各种兼容性要求限制 对struct定义扩展使C语言代码能够更容易移植到C++ 32 C++类内可以定义引用数据成员吗...与重载范围不同:和重写一样,隐藏函数隐藏函数不在同一个。 参数区别:隐藏函数隐藏函数参数列表可以相同,也可不同,但是函数名肯定要相同。

3K01

C语言和C++区别和联系

然而在C++const修饰变量可以当作数组下标使用,成为了真正常量,这就是C++对const扩展。 C语言中const:修饰后不能做左值,可以不初始化,但是之后没有机会再初始化。...不可以当数组下标,可以通过指针修改。 简单来说,它和普通变量区别只是不能做左值而已,其他地方都是一样C++const:真正常量定义时候必须初始化,可以用作数组下标。...总结:Cconst叫只读变量,只是无法做左值变量C++const是真正常量,但也有可能退化成c语言常量,默认生成local符号。...只是我们在调用时候有所不同:调用p时需要*p解引用,b则直接使用可以。由此我们 推断出:引用在直接使用时是指针解引用。p直接使用则是它自己地址。...那如果你就是非要引用一个立即数,其实也不是没有办法: constint &b  = 10; 即将这个立即数用const修饰一下,就可以了。为什么呢?

2.5K30

面试总结-C++

,但不能模块外其他函数访问 在模块内 static 函数只可被这一模块内其他函数调用,这个函数使用范围限制在声明它模块内。...当delete一个对象数组时,delete只删除了一个,需要使用delete[] const 宏定义和const函数区别 宏在编译时完成替换,直接进行替换,执行起来更快,但是可能会存在一些风险;函数用在运行时需要跳转到具体调用函数...常量指针和指针常量常量指针是一个指针,读成常量指针,指向一个只读变量。如int const *p或const int *p。 指针常量一个常量,指针可以改变。如int *const p。...引用相关问题 引用是某个变量别名,因此定义时候必须初始化,也不能把该引用再改成其他变量别名。 声明一个引用并没有定义变量,引用本身不是一种数据类型。也不占用存储空间。...见为什么不能建立引用数组 将引用作为函数参数时,可以避免对变量或者对象复制,因此不会调用对象拷贝构造函数。当不希望传入引用参数不被改变时,使用const引用。

2.1K11
领券