1、c++中程序的模块叫什么?
函数,由函数头、函数体组成,声明及定义
2、#include <iostream>?
为预处理编译指令,将指定模块的函数复制粘贴到当前编译单元(.cpp)
3、using namespace std?
using编译指令,表明使用std命名空间,表示当前函数或者编译单元能够使用std命名空间中的函数,如cout等
4、定义函数,什么情况下不必使用return?
main函数以及void返回类型的函数
5、%运算符对符号的确定方式?
a%b + (a/b)*b = a
6、类型转换
自动转换:精度问题,截断问题
括号转换:列表初始化,不允许缩窄
表达式中的转换:整型计算:integral promotion
强制转换:typeName (value), static_cast<typeName>(value)
7、cin输入
cin >> variable;
cin.getline(variable, size); getline针对行输入,将指定长度的字符读入到指定变量中,以回车为标志,实际字符数量为size - 1,variable字符数组中最后一位存储空字符,代表字符串的结尾。(字符和字符串的区别)
cin.get(variable, size);与getline基本相同,区别在于get会将输入结尾处的回车符放在输入队列中,可用cin.get().get()解决影响。
8、指针
type* ptr = nullptr;
int a = 0;
int* ptr = &a;
指针是一个整数,存储指定变量的内存地址,16进制形式。指针类型只在重新赋值的时候起作用,所有类型的指针本质相同,均为存储内存地址的整数。
9、引用
int b = 0;
int& ref = b;
引用是指针的语法糖,变量的别名,但并未真正创建新变量。与指针区别在于引用无法重新赋值,而指针可以指向一个变量,再指向另一个变量。引用优点在于使得code更加简洁
10、struct和class
本质相同,可以相互等价。struct适用与单纯的组织数据结构,在结构体内能够组织多种类型的数据,内部无复杂的处理方法;class适用于组织少量属性数据,并具有大量的方法来处理这些数据。struct最好在函数外部进行声明。
eg: struct Student {
string name,
float height,
float weight,
};
Student bob = {"bob", 1.6, 80};
11、string和字符数组
区别:可将string对象声明为简单变量。而char为字符数组,以空字符'/0'结尾。
char first_string[20] = "Hello!"; 其余字符置为空字符
不同语法:string str1 = "Hello!";
char str2[20] = "Hello!";
std:: strlen(str2);
str1.size(); // string类对象,以访问成员函数的形式计算字符串长度。
字符数组不可二次赋值,string类型可以。~类似指针和引用之间的关系。
string类型字符串能够通过+,+=运算符进行字符串连接。char数组类型通过strcpy(),strcat()进行复制,连接等操作。
string str1;
string str2 = "Hello!";
char str3[] = "Hi!";
char str4[20];
str1 = str2;
cout << "string 1 is :" << str1 << endl;
if (str1 == str2) {
cout << "Sucessfully assgined!";
}
cout << "Please enter name: " << endl;
cin >> str4;
cout << "Length of str3: " << std::strlen(str3) << endl;
cout << "Length of str2: " << str2.size() << endl;
// string cat
string str5 = str1 + str3;
str1 += str2;
cout << "str5: " << str5 << " str1: " << str1 << endl;
strcpy_s(str4, str3);
cout << "str3 copy to str4:" << str4 << endl;
strcat_s(str4, str3);
12、struct和struct数组
// struct
struct Student {
int studentNumber;
string studnetName;
string teacherName;
short classNumber;
float height;
float weight;
int score;
};
Student bob{
1234567,
"bob",
"john",
2,
1.77,
57
};
cout << bob.studnetName << " is in class " << bob.classNumber << " and his student number is " << bob.studentNumber << endl;
// struct array
Student class1[20];
cout << class1[0].classNumber << endl;