《笔记13》
2025-06-21 11:57:30
发布于:广东
@༺ཌༀ⚡☢.TLE君⚡ༀད༻
内存
你以为的:
a[0][0] | a[0][1] | a[0][2] |
---|---|---|
a[1][0] | a[1][1] | a[1][2] |
a[2][0] | a[2][1] | a[2][2] |
实际上:
a0 | a0 | a0 | a1 | a1 | a1 | …… |
---|---|---|---|---|---|---|
0 | 1 | 2 | 0 | 1 | 2 | …… |
就能得到:
——————————————————————————————————————————————
声明
输入
1.0:
int a[3][4]=
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
}
2.0:
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}
SO:
int a[3][4]={{1},{2},{3}};
1 | 0 | 0 | 0 |
---|---|---|---|
2 | 0 | 0 | 0 |
3 | 0 | 0 | 0 |
int a[3][4]={1,2,3,4};
1 | 2 | 3 | 4 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
——————————————————————————————————————————————
函数&指针
函数声明
int f(int a[2][3])
上下在={1,2,3,4,5,6}是相同
int f(int a[][3])
一道平平无奇の选择题
int a[2][2]={{0,1},{2,3}};
访问a[0][3]会?(多选)
- A.报错
- B.随机值
- C.崩坏……
答案:B,C -……-
指针
int a[3]={1,2,3};
int *p=a;
*p是一个指针变量,只能存a[0]的地址
cout<<*(p+1);
a[0+1]是2;
cout<<*p+1;
同理*p=1,
scanf? scanf!
int a[3]={1,2,0}
scanf("%d",a+2);//a+2是一个指针
3存入了a[2]の地址,a={1,2,3}
多维数组の引用
int (&r)[4]=a[1];
把aの第1行の4列存入&r
来点科技与狠活:
int a[x][y]={};
for(auto &row:a){//a是2喂数组(#`O′)
for(auto &col:row){
col=a++;
}
}
全部评论 2
昨天 来自 广东
0CHINA
昨天 来自 广东
0
有帮助,赞一个