'作为结尾标记. 字符串变量:char str[] = "abdc";// 等价于 char str[5] =" />

c 类 static 函数数组 指针 字符串数组指针字符(2)

电脑杂谈  发布时间:2018-02-16 16:47:25  来源:网络整理

头文件:<vector>

C风格的字符数组来处理字符串:

字符串常量:const char * str = "This is a string."内存中的存储是按字符数组存储的,一个字符一个字节,末尾添加'\0'作为结尾标记.

字符串变量:char str[] = "abdc";// 等价于 char str[5] = {'a','b','c','d','\0'};

C++风格string对象:

头文件:<string>,实际上string是一个类模板

string的构造:接收const char * 类型参数。故可以string str = "hello!";

string的操作符:+、+=、=、==、!=、<、> 。string对这些操作符做了重载。

常用成员函数:append、assign(赋值,和赋值号=效果相同)、compare、insert(position,insert_str)、substr(start_index,length)、find(str)、length()、swap(str)

类的static函数特性_static函数地址_c   类 static 函数

tips:cin会将空格符当作输入的分隔符,当要输入带空格的字符串时,采用getline(cin,string).

指针与引用:指针是C语言就存在的机制,提供了程序直接操作内存的方法。而引用是C++才有的,引用的出现是为了更加安全的使用指针,引用在底层利用的还是指针,但是它又提供了多余的保护机制。指针本身是一个变量,可以更改指针变量本身,也可以操作指针指向的内存地址。而引用任何时间都只有引用指向的变量的概念,不存在引用“本身”的概念,比如无法获取“引用”的地址(&引用变量=获取引用指向的变量的地址,这和指针不同)。其次,引用初始化之后不能更改指向,而指针可以。可以说引用是一种更加古板的指针使用。

C++中很多情况下提倡使用引用,但是有些情况只能使用指针,不能使用引用。

可能为空指针的情况下,只能是指针变量,没有空引用。

只能用函数指针,不存在函数引用

new动态创建的资源,只能用指针存储(虽然理论可以用指针,但是代码画蛇添足,不提倡!!!)

数组传参的时候,通常采用指针类型或者数组形式传参。但也有c++数组引用传参的,如下:

void print (int (&a)[10]);//该函数只能给它传递大小为10的数组作为实参。

template < typename T, size_t N>//T是类型参数,N是非类型参数
void print (const T (&a)[N] ) // 该函数可以给任意类型任意长度数组进行引用传参
{
 for(const auto &item:a)
 {
     cout<<item<<' ';
 }
 cout<<endl;
}

void test5() {
int a[10] = { 1,2,3,4 };
int b[3] = { 0,4,8 };
float c[10] = { 0.0 };
print_s(a);
print_s<int,3>(b);
print_s(c);
}

template < typename T, size_t N>//T是类型参数,N是非类型参数
void print_s2( T(&a)[N])
{
 // 形参a不是const的时候,可以直接修改实参
a[0] = static_cast<T>(1000);
for (const auto &item : a)
{
    cout << item << ' ';
}
cout << endl;
}


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-80668-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 热万杰恩斯
      热万杰恩斯

      很对很对我也这么认为

    • 时帅丽
      时帅丽

      最后笑的好可爱

    • 孙超
      孙超

      又怎么办再打巴萨尔没理由了

      • 许颖
        许颖

        奥巴马这是在转移视线

    热点图片
    拼命载入中...