初始化列表
对变量的初始化定义
对数组的初始化定义
对变量定义应当使用{},使用()会出现未被定义情况。
如下当引用主函数之后函数时会出现报错,
这时添加一个函数声明就能够成功引用,这里的int a()会当作未调用的函数声明。
输入输出
c语言输入输出
c++输入输出
错误用法:只识别了第一个
总结:
使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。endl 相当于'n';
字符串输出
#include<iostream>
using namespace std;
int main()
{
const int n = 128;
char str[n];
cin >> str; // 输入 H he11o this
cout << str << endl; //H hello
cin.getline(str, n); //H hel1o this
cout << str << endl;
// H hello this
cin.getline(str, n, '#'); //H hello this # go to
cout << str << endl;
// yhp this;
return 0;
}
const在c和c++中的区别
c语言中以变量为主,而在c++语言中以常量为主。
在这里将.cpp文件更换为.c文件时会出现编译错误。
将文件后缀名更换为.cpp后就可以编译通过。
const和指针的关系(如下为常见的几种关系)
常变量与指针的关系
int main()
{
const int a = 10;
int* p1 = &a; // error;常变量不能被修改,会出现报错
const int* p2 = &a;//ok;指向转化为常性即可
int * const p3 = &a; // error;只是把p3定义为a的地址(自身是常性),指向并不是
const int * const *p4 = &a;//OK,自身和指向都是常性
int* p5 = (int*)&a; // ok 虽然编译成功但还是不安全 会出现程序的二次定义
return 0;
}
同类型指针的赋值
如下,均可编译通过
总结来说就是能力强的指针可以赋值给能力收缩的指针,权限可以缩小但不能放大。