using namespace std;
int main()
{
int i = 10;
double k = 20.8;
auto j = i + k;
j = i + k;
cout << static_cast<int>(k) << endl;//static_cast<int>指的是强制类型转换(指针类型不能这么转换)
// const int ci = 100;
// int i = 0x1E240; //i = 123456;
// unsigned long long int j = 123ull;//ull指的是数据类型,不是指字符ull
// cout << '\x30' << endl;
return 0;
}
int main(void)
{
int i;
//cin相当于scanf,可以从终端输入数和字符等
if(cin >> i)//注意:cin是>> ,cout是<< ,方向不要弄错了
{
cout << i << endl;
}
else
{
cout << "error!" << endl;
}
// cout << hex << setw(5) << setfill('0') << i << endl;
// 以十六进制输出 宽度为5 剩余宽度用0补齐
// 十六进制 hex 八进制 oct 十进制 dec
return 0;
}
enum WEEK {MON, THU, WEN, SAT, SUN};//枚举类型
//枚举给int赋值可以,int给枚举类型赋值不可以,即宽给窄的可以,窄的给宽的不行
void foo()
{
foo();
}
size_t Strlen(const char *pstr)
{
if(*pstr == '\0')
{
return 0;
}
else
{
return Strlen(pstr + 1) + 1;
}
}
int main()
{
WEEK week;
week = static_cast<WEEK>(100);
// int i = week;
// while(1){}
// cout << week << endl;
// foo();
cout << Strlen("Hello World!") << endl;
return 0;
}
inline void bar(int &ref)//此处&指的是引用
{
++ref;
}
/*
inline指的是内联,即主函数调用bar()时,相当于把此处bar()函数直接放在了主函数里面,而不是从主函数出来调用bar()函数。
函数定义时,在返回类型前加上关键字inline即把函数指定为内联,函数申明时可加也可不加。但是建议函数申明的时候,也加上inline.
inline如果只修饰函数的申明的部分,如下风格的函数foo不能成为内联函数:
inline void foo(int x, int y); //inline仅与函数声明放在一起
void foo(int x, int y){}
而如下风格的函数foo 则成为内联函数:
void foo(int x, int y);
inline void foo(int x, int y){} //inline与函数定义体放在一起
*/
void Swap(int &a, int &b)
{
int t;
t = a;
a = b;
b = t;
}
void Print(const int &ref)
{
cout << ref << endl;
}
int main(void)
{
int i = 10;
int j = 20;
bar(i);
Print(100);
// const int &ref = i;//constrant
// cout << ref << endl;
// Swap(i, j);
// cout << i << "," << j << endl;
// int *p = NULL;//X
// int j = 20;
// int &ref = i;
// ref = j;
// ++ref;
// bar(i);
// cout << i << endl;
return 0;
}
int foo(int n)
{
return n + 1;
}
//重载:函数同名相同,但是函数返回值类型、参数个数、参数类型不同
int add(int a, int b, int c)
{
cout << "add(int, int , int)" << endl;
return a + b + c;
}
int add(int a, int b,int c)
{
cout << "add(int, int, int)" << endl;
return a + b;
}
double add(double a, double b, double c)
{
cout << "add(double, double , double)" << endl;
return a + b + c;
}
double add(double a, int b)
{
return a + b;
}
double add(int a, double b)
{
return a + b;
}
void choiceSort(int *p, size_t len)
{
for(size_t i = 0;i < len - 1;++i)//此处定义i和j用size_t型,而不要用int型,因为size_t是unsigned int型
{
for(size_t j = i + 1;j < len;++j)
{
if(p[i] > p[j])
{
int t;
t = p[i];
p[i] = p[j];
p[j] = t;
}
}
}
}
void choiceSort(double *p, size_t len)
{
for(size_t i = 0;i < len - 1;++i)
{
for(size_t j = i + 1;j < len;++j)
{
if(p[i] > p[j])
{
double t;
t = p[i];
p[i] = p[j];
p[j] = t;
}
}
}
}
int main(void)
{
int a[] = {1,-2,3,-4,5,-6};
double b[] = {1,-2,3,-4,5,-6};
// choiceSort(a, sizeof(a) / sizeof(a[0]));
for(auto &x : a)//a如果为罐子类型(栈、数组等),就可以这么使用,即逐一将里面的数打印出来。
{
++x;
}
for(int x : a)
{
cout << x << ",";
}
cout << "\b \n";
// for(size_t i = 0;i < sizeof(a) / sizeof(a[0]);++i)
// {
// cout << a[i] << ",";
// }
// cout << "\b \n";
// cout << add(1 , 2) << endl;
return 0;
}