数组与指针

来源:互联网 发布:thinkphp开发cms 编辑:程序博客网 时间:2024/06/08 15:53
  今天先要预习一下数组与指针的相关知识再来回顾昨天学习的内容。
  首先关于数组,众所周知,数组是C语言中一种很常用的工具,那么在预习数组的时候罗列了一些问题。
  1.数组的优点在哪里?
  数组在内存存放中具有地址,数组名就是数组在内存存放的数组首元素地址。数组的下标是一种很低层次的处理,在正确编写和调试C程序的情况下,利用数组可以使程序运行的更快更有效率。其次,数组和指针可以非常和谐的在一起工作,当数组出现在一个表达式中时,他和指向数组第一个元素的指针是等价的,因此数组和指针几乎可以互换使用。
  2.数组最后一个元素后面的第一个地址可以使用吗?
  我们并不知道数组最后一个元素后面的第一个地址是什么内容,但我们可以使用他的地址,但如果数组后的第一个地址的内容被使用那么就可能破坏后面的数据,而且可能会引发很多我们不了解的问题,所以我们一定要谨慎的使用未知内容的地址,尽量不去用。
  3.当数组作为一个参数传递给函数时,如何判别一个数组的大小?
  第一种方法是将数组和表示数组大小的值一起传递给函数,如memcpy()函数。第二种方法是引入某种规则来结束一个数组。C语言中常用一个空指针来结束一个指针数组。
  4.指针与下标数组名哪一个能更有效率地访问数组元素呢?
  指针相对与下标还是更有效率一些,下标访问元素时需要确定下标所在的地址,需要将i和数组导入的类型大小相乘后再与数组a中的第一个元素的地址相加;而*只需间接引用指针,间接引用比乘法速度要快。
  接着来复习昨天学习的内容。
  昨天学习了数据类型、运算符、表达式和一些语句。
  数据类型主要学习了数据的种类和表示的范围以及变量常量还有一些有关变量的关键字(const)等。
  表达式和运算符主要是能明白他们运算的优先级,有些小点还是需要记住的,如i++(i--)、++i(--i)的概念,还有一些语句比如if、for、swicth、while语句,通过整合这些所学可以简单的编一些小程序,希望在日后能愈加熟练。 
原创粉丝点击