c语言中变量赋值的三种方式 C,C编程学习笔记
所有变量必须在使用前进行声明,变量可以在使用前进行声明,不必在函数或过程的开始位置先声明。
变量名规范 1. 名称只能使用字母、数字、下划线。
2. 名称的第一个字符不能是数字。
3. 不能与C 关键字重名。
注:以下划线开头的变量名是系统专用的,尽量不要这样命名。长度不要过长,最长尽量不要超过63。
变量声明举例变量的初始化1. 默认初始化
默认初始化是指定义变量时没有指定初值时进行的初始化操作。
内置类型变量
若变量定义在语句块(即{})外面,那么变量会被默认初始化为0或等同于0的值。
若变量定义在语句块里面,变量的值是不确定的。
为什么不初始化变量呢?给自己挖坑吗?
类类型变量
无论定义于何处都会执行默认构造函数。如果默认构造函数中没有初始化变量,那么变量的值是不确定的。如果不 存在构造函数,编译器会根据需要创建空默认构造函数。
2. 值初始化
值初始化是指用了初始化器但没有提供初始值的情况。变量会被默认初始化为0或等同于0的值。
3. 直接初始化
直接初始化就是指使用了初始化器并且提供了初值的情况。
对于类来说,直接初始化会调用与实参最佳匹配的构造函数。
例如:int a(1);string str("hello");Test a(1,2,3);
4. 拷贝初始化 拷贝初始化就是用等号对变量进行赋值的方法,即将右值拷贝给左值。
内置类型变量
对于内置类型变量来说,直接初始化与拷贝初始化差别几乎可以忽略不计。
类类型变量
对于类类型变量来说,直接初始化会调用与实参最佳匹配的构造函数,但是拷贝初始化调用类的拷贝构造函数。
*注:对类类型变量进行初始化时,如果类的构造函数采用了explicit修饰并且需要隐式类型转换。此时只能通过直接初始化而不能通过拷贝初始化。
例如:
5. 列表初始化在可以使用直接初始化和拷贝初始化的地方都能用列表初始化。列表初始化对容器的初始化同其他方法更方便一些。
对于容器
特别地,对于容器初始化时有()和{}两种方法。
使用()
有一个参数时仅构造容器。两个参数时,第一个参数构造容器,第二个初始化容器。
使用{}
如果参数序列的所有值均与容器类型相同,那么初始化时会将参数列表中的所有值放入容器中,容器的元素数 量和参数数量相同。
如果参数序列中的值与容器类型不同,那么会考虑将该值作为构造容器的参数;如果不能作为参数那么就会出 现编译错误。
例如:
Copy
6. 动态分配时的初始化
动态分配时不加以初始化时,内置数据类型的变量的值是不确定的。类类型变量将调用默认构造函数进行初始化。
例如:
int* a = new int();
int* a = new int(123);
vector<int> *t1 = new vector<int> {1,2,3,4};
学习C/C 编程知识,想要成为一个更加优秀的程序员,或者你学习C/C 的时候有难度,可以关注 私信小编【C/C 编程】,不仅有学习视频和文件资料,还有更多志同道合的朋友,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!
- 04-05很多人不会喜欢保守的女孩 不会追保守女孩的看这里
- 04-01如何玩转社群******?活动抽奖让你玩转社群抽奖
- 02-01零基础儿童美术绘画,最新少儿美术精选32张汇聚各类绘画创意
- 10-26夏洛特黄蜂队史最佳阵容 美媒列出夏洛特黄蜂队史最严重的十次选秀失误
- 10-05十大惊艳姓氏:时尚界的那些大牌姓氏
- 05-13四年级期末考试作文押题人教版:四年级期末考试作文押题
- 03-09萨特人的存在,萨特人为什么会有******
- 01-05园林绿化养护管理标准最新版:大业园林为大家介绍园林绿化养护管理制度
- 04-11最有意义的鼓励儿童绘本故事 0-5岁儿童绘本温暖故事相伴
- 05-18阳离子聚丙烯酰胺配制时间:阳离子聚丙烯酰胺怎么选型与使用
- 02-05杭州市萧山区玉山中学初中部:不限户籍居住地杭州萧山玉山中学
- 02-10如何排查房间摄像头?如何检查房间里的摄像头
- 11-02信息进村入户实施方案,广西信息进村入户工程信息员
- 05-20顶配不到13万这3款车买了不后悔:15万想买中型轿车我们推荐这四款
- 03-06农村最常见的鱼有几种,个头不大的6种鱼儿时河里常见
- 11-29电脑进入bios有几个选项怎么选择?不同的电脑BIOS界面都不一样
热门
推荐
- 1关于森林旅游安全的知识393
- 2山东省普法教育考试的题目都有哪些383
- 3文艺唯美的爱情幸福说说语录292
- 4同义词和近义词的区别有关抵挡的近义词,同义词和造句196
- 5与众不同的励志格言458
- 6总结表彰大会主持词范文205
- 7盐有什么美容效果175
- 8怎样申请出国留学前往日本378