c++ plus复习
创始人
2025-05-30 23:59:53
0

系列文章目录


文章目录

  • 系列文章目录
  • 一、复合类型
    • C风格字符串
    • c++ 风格字符串
    • 数组、指针
  • 总结


一、复合类型

C风格字符串

字符串用双引号表示,如 “S”为字符串,它有两个字符’S’和’\0’(\0自动添加,实际上就是0x00)。“S”实际上就是字符‘S’的地址

// 以下都是字符串
// '\0'是字符串结束的标志
const char* cstr = "abc"; // 'a', 'b', 'c', '\0'
char charr1[4] = "abc";  // 'a', 'b', 'c', '\0'
char ch[] = "abc";   // 'a', 'b', 'c', '\0'
char ch[10] = {'a', 'b', '\0'};// 以下是字符数组
char ch[4] = {'a', 'b', 'c', 'd'};

cin
从输入缓冲区读取字符,默认以 空格、enter、tab结束
在这里插入图片描述

cin.getline(ch, 4)
读取一行(行尾为’\n’),然后清空输入缓冲区,将’\n’替换成’\0’
或者读取到第三个字符后+‘\0’停止读取,清空输入缓冲区中读取的字符
在这里插入图片描述
cin.get(ch, 4)
与getline相似,读取一行(以’\n’结尾)但是不将输入缓冲区中的’\n’清除,所以cin.get(xx,xx); cin.get(xxx,xx);会导致第二个get失效,一般cin.get(xx, xx).get();
cin.get() 可跳过换行符

混合输入字符串和数字

    const int n = 10;char arr[n];char arr2[n];int y;cin >> y;  // 添加cin.get()// cin不会将输入缓冲区中的换行符清空// getline看到换行符后认为输入结束cin.getline(arr, n);cout << y << arr;

c++ 风格字符串

用string

显示原始字符

cout << R"(Ji "King" "\n" instead of endl.)" << '\n';
// Ji "King" "\n" instead of endl.
// cout << R"任意字符("(yes'?)", sy.括号内为原始字符)同前" << '\n';
cout << R"+*(括号内为原始字符,不存在转义的情况)+*" << '\n';

类或者结构是对其实例化后对象的属性或方法的描述,因此一般不会在定义类或结构时对成员赋值。定义是描述性的语句,此时赋值是没有道理的。

在C++中列表初始化是一种较为通用的初始化方法(=是可选项,如果{}内没有东西则编译器会默认置零,不允许缩窄转换),可对结构体、普通变量等进行初始化。

结构体可在函数外部定义也可在函数内部定义。

可在结构中定义位字段

struct torgle_register
{unsigned int SN : 4;  // 4 bits for SN valueunsigned int : 4;     // 4 bits unusedbool goodIn : 1;      // valid input(1 bit)bool goodTorgle : 1;  // successful torgling
};

用new申请内存后一定要用delete释放掉,其它行为均为“未定义行为”

数组、指针

  • 数组和指针基本等价,其根本差别是数组名是rvalue不能修改。
  • 对数组名应用sizeof运算符得到的是数组的大小(元素类型字节x元素个数),对指针则是指针大小。
short tell[10];  // tell an array of 20 bytes
cout << tell;    // displays &(tell[0])
cout << &tell;   // displays address of whole array

从数字上说这两个值完全一样;但从概念上说,&tell[0](即tell)是一个2字节内存块的地址,而&tell是一个20字节内存块的地址。因此,表达式tell+1将地址值加2,而表达式&tell+1将地址值加20。换句话说tell的类型为(short*),而&tell的类型为short(*)[10]。即为

short (*pas)[10] = &tell;  // pas points to array of 20 shorts// pas相当于二级指针其类型为 short (*)[10]
// 两种表示基本等价
pw[1]  *(pw + 1)

数组的动态联编和静态联编

int a[常量或常量表达式];int size;
cin >> size;
int* arr = new int[size];
...
delete [] arr;

指针和字符串

char flower[10] = "rose;
cout << flower << "s are red\n";
  • 在cout和C++表达式中,char数组名、char指针以及用引号括起来的字符串常量都被解释为字符串第一个字符的地址。

总结

C++数类型分为基本类型和复合类型。
基本类型分为整形和浮点型,复合类型如数组、指针、结构体等。

相关内容

热门资讯

最新或2023(历届)乡镇禁毒... 【最新或2023(历届)乡镇禁毒宣传活动总结1】  为提高群众抵御毒品自觉性,营造良好的平安建设和宣...
面向毕业、职称的SCI论文高效... 文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计...
最新或2023(历届)公司安全... 公司安全生产月活动总结【1】  按照全国第十五次“安全生产月”活动的总体部署,深入宣贯习近平总书记关...
最新或2023(历届)参观小学... 最新或2023(历届)参观小学活动小结【1】  幼儿园大班幼儿即将步入小学,他们对小学生活感到陌生而...
幼儿园“游戏——点亮快乐童年”... 幼儿园“游戏——点亮快乐童年”活动总结【1】  为了满足幼儿的探知愿望,做好幼小衔接工作,6月5日上...
幼儿园最新或2023(历届)全... 幼儿园最新或2023(历届)全国学前教育宣传月活动总结【1】  最新或2023(历届)学前教育宣传月...
第16个“安全生产月”活动总结... 第16个“安全生产月”活动总结1:  为增强全社会的安全生产意识,进一步提高全镇人民的安全文化素质,...
SQL注入之HTTP请求头注入 Ps: 先做实验,在有操作的基础上理解原理会更清晰更深入。 一、实验 s...
最新或2023(历届)纪律教育... 【最新或2023(历届)纪律教育学习月活动总结1】  根据市委办《中共肇庆市委办公室转发〈市纪委关于...
开展最新或2023(历届)纪律... 【开展最新或2023(历届)纪律教育学习月活动总结1】  自我局“纪律教育学习月”活动启动以来,县局...
最新或2023(历届)扶贫助学... 扶贫助学活动总结【1】  “让我们荡起双桨,小船儿推开波浪…….”,英德市青塘镇中心小学的校园内传来...
开展最新或2023(历届)征信... 【开展最新或2023(历届)征信宣传活动总结1】  为进一步拓宽征信知识宣传的广度和深度,提升征信服...
Go项目(rocketmq) 文章目录简介场景技术选型rocketmq概念消息类型go-client集成CreateOrderin...
银行开展最新或2023(历届)... 【银行开展最新或2023(历届)征信宣传活动总结1】  6月14日是全国第十个“信用记录关爱日”,今...
【计算机视觉】经典的图卷积网络... 【计算机视觉】经典的图卷积网络框架(LeNet、AlexNet、VGGNet、Ince...
最新或2023(历届)全国“安... 【最新或2023(历届)全国“安全生产月”宣传咨询日活动简报1】  6月16日是全国第16个“安全生...
节能有我绿色共享系列活动总结 ... 【节能有我绿色共享系列活动总结1】  6月13日是全国低碳日,连城供电公司积极组织节能宣传周活动,在...
最新或2023(历届)白山中学... 6月29日放暑假,8月31日、9月1日学生到校报到,9月2日正式上课一、义务教育阶段中学、幼儿园6月...
最新或2023(历届)通化中学... 暑期是小学生安全事件频发的季节,分析近年来发生的暑期安全事故可以发现,安全意识淡漠、自救互救知识匮乏...
最新或2023(历届)全国土地... 最新或2023(历届)全国土地日宣传活动总结【1】  为做好第XX个全国“土地日”的宣传活动,使全社...