c++空指针(c++11推荐)–nullptr为c++关键字
内联
c–宏—可以用内联来代替
- 缺点:语法复杂、注意的细节多,易出错;没有类型安全的检查;不能调试;
- 代替宏:const、enum、inline
auto关键字
简化代码,但也一定程度牺牲了代码可读性
#include <string>
int main()
{
int a = 1;
char b = 'a';
auto c = a;
auto d = b;
cout << typeid(c).name() << endl;
cout << typeid(d).name() << endl;
return 0;
}
int main()
{
int x = 10;
auto a = &x;
auto* b = &x;
auto& c = x;
cout << typeid(a).name() << endl;
cout << typeid(b).name() << endl;
cout << typeid(c).name() << endl;
}
auto不能
- auto不能作为函数的参数
- auto不能直接用来声明数组
- auto声明多个变量时,这些变量不能是不同的类型
访问数组的方式
void TestFor()
{
int array[] = { 1, 2, 3, 4, 5 };
for (int i = 0; i < sizeof(array) / sizeof(array[0]); ++i)
array[i] *= 2;
for (int* p = array; p < array + sizeof(array) / sizeof(array[0]); ++p)
cout << *p << " ";
cout << endl;
for (auto& e : array)
{
e *= 2;
}
for (auto e : array)
{
cout << e << " ";
}
cout << endl;
}
int main()
{
TestFor();
return 0;
}
** 不能这样使用,array已经不是数组,c语言–array是指针**
|