数组

1
2
3
4
int a[10];   //每个元素4字节,[10]为定义数组长度,索引由a[0]开始,到a[9]

double b[10]; //定义浮点数元素的数组

1
2
3
4
5
6
7
const int LENGTH = 30;
int mylist[LENGTH],sum;
for(int i=0;i < LENGTH;i++)
{
cin >> mylist[i];
sum += mylist[i];
}
1
2
3
4
5
6
7
8
9
int a[10];
for(int i=0;i<10;i++)
{
a[i] = i+100;
}
for(int i=0;i<10;i++)
{
cout<<a[i]<<endl;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
{
int a[10];
int sum=0,score=0,j=0;
for(int i=0;i<10;i++)
{
cin>>a[i];
sum += a[i];
}
score = sum/10;
for(int i=0;i<10;i++)
{
if(a[i]>score)
{
cout<<a[i]<<endl;
j++;
}
}
cout<<j<<endl;
}

地址

地址传参

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;

void modify(int *num) {
*num = 100;
}

int main() {
int a = 50;
cout << "Before calling modify function: " << a << endl;
modify(&a);
cout << "After calling modify function: " << a << endl;
return 0;
}

在这个示例中,我们定义了一个名为modify的函数,它接受一个指向整数的指针作为参数。在main函数中,我们将变量a的地址传递给modify函数。在modify函数内部,我们通过解引用指针来修改实参的值。因此,当我们调用modify(&a)后,实参a的值被修改为100。

地址–指针与引用

1
2
int a;

&a既是变量a的内存地址

int& b=a既是b对a的引用

int* p=&a既是指针变量,通过 *p来访问或修改指针所指向的变量的值

在C++中,当我们创建一个指针变量时,例如 int* p = &val;,指针变量p就包含了另一个变量val的地址。此时,我们可以通过 *p来访问或修改指针所指向的变量的值。

引用是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。例如,我们可以声明一个整数类型的引用,如 int& b = val;,此后b就成为了val的别名,对b的任何操作都会直接影响到val。

数组的传参

在c++中,当数组作为函数传参时,实参数组给形参数组传递的是指向数组首元素的指针,而不是数组的副本。

即在函数中改变数组元素会对原数组产生影响。