浅议C语言中灵魂数组和指针的互操作
来源:互联网 发布:网络枪机配什么镜头 编辑:程序博客网 时间:2024/06/01 19:35
当然了,这是无可非议的,但是C的高效性是其他语言无妨比拟的,所以我们有必要把握其中的
我们一般都认为数组是一维的数据存储结构,因为二位数组或者说矩阵都可以看作是多个一维数组的组合结构,定义在其上的数据存储访问方式是一样的。所以一维数组是其中最基础的最重要的部分,只有理解了此类数据结构的本质才能触类旁通了。
数组(array)是若干同类变量的聚合,允许通过
在C语言中数组都由连续的内存区域构成(有时候,不一定是这样),最低地址对应首元素,数组的下标是从0开始的,所以首元素也就是数组下标为0的元素,最高的地址对应最末的元素,即第N-1个元素(如果我们定义的数组为N元)。
数组的定义方式:
在C语言中允许在声明数组的时候同时对其进行初始化,也可以把声明和定义放在不同的位置,初始化的一般的类似于如下的表达式:
type_specifier array_name[size1]...[sizeN] = {value_list};
其中vlaue_list是由逗号(,)分隔的常量表,常量表必须和type_specifier兼容。最后由分号与下一个语句分隔。由此可见一维数组的定义方式为:
type_specifier
array_name[size] = {value_list};
如下:
char hello[12] = {’H’,’e’,’l’,’l’,’o’,’,’
,’ ’,’w’,’o’,’r’,’l’,’d’,’/0’};
注意:字符数组是一"’/0’"收尾的,这是C
上面的例子的串的生命方式为:string hello = "Hello, world";(当然了,具体的实现中你必须把"string.h"头文件加入到你的文件中),或者你也可以这样来声明:
char *hello = "Hello, world";或者char hello[] = "Hello, world";
切换为字符指针数组,其效果是一样的);数组初始化的时候还可 以不标明最大小,即
char hello[] = {’H’,’e’,’l’,’l’,’o’
,’,’,’ ’,’w’,’o’,’r’,’l’,’d’,’
/0’};,
这时候编译器会根据后边的赋值情况为数组分配合适的
数组元素的访问:
可以利用循环结构来挨个访问数组的元素,比如:
[...]
int i;
char hello[12] = {’H’,’e’,’l’,’l’,’o’,’
,’,’ ’,’w’,’o’,’r’,’l’,’d’,’/0’};
[...]
for(i = 0; i < 12; i++){
printf("%c",hello[i]);
}
printf("/n");
[...]
其中有一点必须注意了,那就是i的值不能取到12,因为我们的下标识从0开始的,即hello[0]是第一个元素,数组的下界,而hello[12]是第一个空元素,数组的上界。
其实,数组元素的个数等于定义时的下标,也等于数组的上界(12)减去下界(0)得到的数值,还等于上界地址减去下界地址模sizeof(tyep_specifier)的值(假设数组空间是连续分布的,如果不是这样那么这种方法也就不成立了)。
- 浅议C语言中灵魂数组和指针的互操作
- 浅议C语言中数组和指针的互操作
- 浅议C语言中数组和指针的互操作
- 浅谈C语言中数组和指针的互操作
- 再谈C语言中数组和指针之间的互操作
- 再谈C语言中数组和指针之间的互操作
- 再谈C语言中数组和指针之间的互操作
- C语言中指针数组和数组指针的关系
- C语言:指针,C的灵魂
- C语言:指针,C的灵魂
- 指针是C语言的灵魂
- 指针——C语言的灵魂
- c语言的灵魂——指针
- 指针——C语言的灵魂
- c语言的灵魂——指针
- C语言的灵魂--指针基本用法
- C语言中数组和指针--数组的退化
- 指针->C的灵魂
- 小记一次服务器提权
- .Net 学习路径
- 在C语言中以编程的方式获取函数名
- 浅谈C/C++内存泄漏及其检测工具
- 在C语言中巧用正则表达式
- 浅议C语言中灵魂数组和指针的互操作
- 找到方向,找到方法
- 存取程序状态的几种方法——Java I/O应用杂谈
- 学习编程的最佳方向!
- JSP初级系列--apache2.2和tomcat5.5整合(绝对可行)
- JSP初级系列--Eclipse3.21+SQl 2005 JDBC数据库连接配置方法
- 济南 方言(dialect)
- C# 调用 java webservice 的问题
- UpdateWindow