C专家编程_4数组和指针
-
声明和定义
1)定义:只能出现在一个地方。确定对象的类型并分配内存,用于创建新的对象,如:int my_array[10];
2)声明:可以多次出现。用于指代其他地方定义的对象(如在其他文件中)。例:extern int my_array[] -
数组和指针的访问
1)char a[9] = “abcdefg”;
c = a[i];
编译器符号表具有一个地址,假设为9980,运行步骤1:取i 的值,将它与地址9980相加,运行步骤2:取地址为(地址9980 +i)的内容。2)char *p;
c = *p;
编译器符号表有一个符号p,它有一个地址(假设为4624),运行步骤1:取地址4624的内容,假设为5081;运行步骤2:取地址为5081的内容。3)定义为指针,但以数组方式引用
char *p = “abcdefg”;
按照1),p[3] = ‘d’;char a[] = “abcdefg”;
按照2),a[3] = d;