数组的相关概念1

1.引用(reference)的基本用法

#include 

using namespace std;

int main() 
{
    int a = 10;    //the declaration and initialization of variables
    int &ra = a;    //declare variables  
    std::cout << "a=" << a << endl;
    ra++;    //increment of a variable
    std::cout << "a=" << a << endl;
    return 0;
}

【注意】引用的修改会直接影响到被引用的变量

2.访问地址(&运算符)、整数的长度(sizeof运算符)、最大值和最小值(INT_MAX和INT_MIN在climits头文件里)

#include 
#include 

using namespace std;

int main()
{
    int a = 10;
    int &ra = a;
    ra++;

    //visit address
    cout << "The Address of a is: " << &a << endl;
    cout << "The Address of ra is: " << &ra << endl;

    //visit length
    cout << "The size of a is: " << sizeof(a) << endl;
    cout << "The size of ra is: " << sizeof(ra) << endl;

    //visit maximum and minimum
    cout << "The Maximum value of int is: " << INT_MAX << endl;
    cout << "The Minimum value of int is: " << INT_MIN << endl;

    return 0;
}

3.数组的初始化和遍历

#include 

using namespace std;

int main() 
{
    int arr1[10] = {0};    //initialization of an array

    for (int i = 0; i < 10; i++) 
    {
        cout << arr1[i] << " ";
    }
    cout << endl;    //traversal of array

/*
 * Improvement suggestion
 * use range-based for loop
 * for (int num : arr1) 
 * {
 *     cout << num << " ";
 * }
 */

    return 0;
}

【注意】int arr[10] = {0}; 会将所有元素初始化为 0(若初始化列表元素不足,剩余元素自动置零)

4.指针相关操作

#include 

using namespace std;

int main() 
{
    int arr1[10] = {0};
    for(int i = 0; i < 10; i++)
    {
        cout << arr1[i] << " ";    //"*(arr1+i)" is equal to "arr[i]"
    }
    cout << endl;

    int *parr1 = arr1;    //define a pointer and initialize to the starting address of arr1

    cout << "The initial address of an array is: " << arr1 << endl;
    cout << "The initial address of an array is: " << &arr1[0] << endl;
    cout << "The initial address of an array is: " << parr1 << endl;
    //"parr1 = arr1" is equal to "parr1 = &arr1[0]"

    return 0;
}

5. 指针的移动

#include 

using namespace std;

int main() 
{
    int arr1[10] = {0};

    int *parr1 = arr1;

    //change array elements
    arr1[2] = 3;
    cout << "arr1[2]=" << arr1[2] << endl;
    *(parr1 + 2)=4;
    cout << "arr1[2]=" << arr1[2] << endl;

    //pointer movement
    parr1++;
    *parr1 = 10;

    //array traversal
    for(int i = 0; i < 10; i++) 
    {
        cout << *(parr1 - 1 + i) << " ";
    }
    cout << endl;

    return 0;
}

【注意】 数组与指针结合,可以进行加减操作

6.访问数组的长度、字符的长度、小数的长度

#include 

using namespace std;

int main() 
{
    int arr1[10] = {0};
    int *parr1 = arr1;

    //access array elements
    parr1 = arr1; 

    // sizeof(arr1) 返回整个数组占用的字节数
    cout << "The size of arr1 is: " << sizeof(arr1) << endl; 

    // 手动计算数组占用字节数,10 个 int 类型元素,每个 int 类型大小乘以元素个数
    cout << "The size of arr1 is: " << 10 * sizeof(int) << endl; 

    // 另一种手动计算数组占用字节数的方式,通过数组第一个元素类型大小乘以元素个数
    cout << "The size of arr1 is: " << 10 * sizeof(arr1[0]) << endl; 

    // sizeof(parr1) 返回指针本身的大小,而不是数组的大小
    cout << "The size of arr1 is: " << sizeof(parr1) << endl; 


    //access the length of a character
    char ch = 'a';
    char * pch = &ch;
    // sizeof(pch) 返回字符指针的大小
    cout << "The size of pch is: " << sizeof(pch) << endl; 

    //access the length of a decimal number    
    float f1 = 1.1;
    float *pf1 = &f1;
    // sizeof(pf1) 返回浮点型指针的大小
    cout << "The size of pf1 is: " << sizeof(pf1) << endl; 

    return 0;
}

你可能感兴趣的:(conclusion,c++,算法,开发语言)