指针数组初始化
书上的例程,编译出错,说指针数组非法初始化。
上一行加上static就可以运行了,为什么??
我是菜鸟不懂啊,瞎弄的。
#include <stdio.h>
main(){
static int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
int i;
for(i=0;i<3;i++)
printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
for(i=0;i<3;i++)
printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}
上一行加上static就可以运行了,为什么??
我是菜鸟不懂啊,瞎弄的。
#include <stdio.h>
main(){
static int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
int i;
for(i=0;i<3;i++)
printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
for(i=0;i<3;i++)
printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}
...全文
相关推荐
struct 结构体中数组和指针的操作
然而,在对数组和指针的操作时,我们需要明确两个概念:初始化和赋值。初始化是指分配内存并写入值的过程,而赋值是指查找内存并写入值的过程。
第6章数组指针与字符串.
;```引用是变量的别名,它必须在声明时初始化且一旦绑定就不能更改。与指针不同,引用不能为NULL,也不能重新赋值。
二维数组 二级指针以及数组指针的讨论
- 二维数组的物理布局。- 指向指针的指针的概念及其应用。- 动态分配二维数组的例子。##### 1. 指针初始化虽然没有硬性规定指针必须初始化,但从良好的编程习惯出发,建议在使用之前初始化指针。
数组与指针的用法及易错解
零长度数组:在结构体或联合体中,可以声明零长度数组,但这样做在标准C中是未定义行为,应当避免。6. 野指针:未初始化的指针称为野指针,使用它们会导致未知结果。总是确保指针在使用前已正确初始化。
语言二维数组与指针PPT课件.pptx
在这个PPT课件中,主要讨论了二维数组的定义、初始化以及与指针的关系。首先,二维数组的定义格式是`数据类型 数组名[常量表达式1][常量表达式2]`。


