![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
mylove10086
;ldfk
展开
-
C专家编程 九 什么时候数组与指针相同(一)
在实际应用中,数组和指针可以丸换的情形要比两者不吋彳 换的情形更为常见。让我们分别考虑“声明”和“使用”(使用它们传统的自:接作义)这两 种情况。声明本身还可以进一步分成3种情况:•外部数组(external array)的声明。•数组的定义(记住,定义是声明的一种特殊情况,它分配内存冷间,许可能提供一个 初始值)。•函数参数的声明。 所有作为函数参数的数组名总是原创 2016-11-12 20:20:14 · 431 阅读 · 0 评论 -
C专家编程 十 规则2: C语言把数组下标作为指针的偏移量(二)
把数组下标作为指针加偏移量足C语言从BCPL (C语言的祖先)继承过来的技巧。在人们的常规思维中,在运行时增加对C语言下标的范围检查是不切实际的。因为取下标操作只是表示将要访问该数组,但并不保证一定要访问。而且,程序员完全可以使用指针来访问数组,从而绕过下标操作符。在这种情况下,数组下标范围检测并不能检测所有对数组的访问的情况。事实上,下标范围检测被认为并不值得加入到C语言中。还有一种说法原创 2016-11-13 12:22:12 · 2606 阅读 · 0 评论 -
C专家编程 十二 C语言的多维数组
有些人声称C语言没有多维数组,这是不对的。ANSI C标准在第6.5.4.2节以及第69号脚注上表示:当几个“[]”修饰符连续出现时(方括号里面是数组的范围),就是定义一个多维数组。 但所有其他语言都把这称为“数组的数组” C语言的方法多少有点独特:定义和引用多维数组惟一的方法就是使用数组的数组。尽管C语言把数组的数组当作是多维数组,但不能把几个下标原创 2016-11-13 21:37:16 · 606 阅读 · 0 评论 -
C Primer Plus学习 九 数组
一个数组就是线性存储的一系列相同类型的值,例如10个字符或15个整数。整个数组有一个单一的 名字,单独的项或元素可以使用一个整数索引来进行访问。例如,下列声明:debts[5] = 32.54; debts[6] = 1.2e+21:float debts[20]; 声明debts是一个具有20个元素的数组,其中的每个元素都是一个类型为float的值。这个数组的第一 个元原创 2016-10-04 12:43:51 · 309 阅读 · 0 评论 -
C专家编程 十五 使用指针向函数传递一个多维数组
使用上一节所描述的笨拙方法,可以解决标记数组范围这个难题。但是还存在一个问题, 就是如何在函数内部声明一个二维数组参数,这才是真正的麻烦所在。C语言没有办法表达 “这个数组的边界在不同的调用中可以变化”这个概念。C编译器必须要知道数组的边界,以 便为下标引用产生正确的代码。从技术上说,也可以在运行时处理才知道数组的边界,而且很多其他语言就是这样做的,但这种做法违背了C语言的设计理念。原创 2016-11-15 10:57:22 · 495 阅读 · 0 评论 -
C与指针 四 数组下标
现在考虑下面这个例子:int a[10];int b[10];int *c;c=&a[0]; 表达式&a[0]是一个指向数组第1个元素的指针。但那正是数组名本身的值,所以下面这条赋值语句和上面那条赋值语句所执行的任务是完全一样的:c = a; 这条赋值语句说明了为什么理解表达式中的数组名的真正含义是非常重要的。如果数组名表示整个数组,这条语句原创 2016-11-21 14:10:05 · 399 阅读 · 0 评论 -
C与指针 五 矩阵相乘
如果A是个x行y列的矩阵,B是个y行Z列的矩阵,把A和B相乘,其结果将是另一个\行2列的矩阵0。这个矩阵的每个元素是由下面的公式决定的: 结果矩阵中14这个值是通过2X-2加上-6X-3得到的。编写一个函数,用于执行两个矩阵的乘法。函数的原型应该如下:void matrix_multiply( int *ml, int *m2, int *r,int x, i原创 2016-11-22 15:13:16 · 653 阅读 · 1 评论