个人对“数组与指针”的重点笔记(上)

  1. C不允许把数组作为一个单元给另一个数组赋值,而且除了初始化之外也不允许使用花括号列表的形式赋值。如//int a[6]={1,2,3,4,5,6};int b[6];   a[6]=b[6];和a=b;(这都是不允许的),而且b[6]={1,3,4,5};(不起作用)
  2. 另外关于数组下标越界可能会导致程序改变其他变量的值,有些也会导致程序异常终止。这是因为越界的那个数组元素的地址是不确定的,所以关于它的引用有可能导致一些意外的事情。C是不检查边界的,这样C程序可以运行的更快。所以我们编写程序的时候要注意数组的元素是从0开始的,最好在声明数组的时候使用符号常量来表示数组的大小。

如:#define SIZE 5

     int main()

{

        int a [SIZE];
        for(i=0;i<SIZE;i++)
                a[i]=i;
...................................................
}

    3.对于多维数组的理解可以把他想象为“行”和“列”,也可以把它想象为树状图,即含有的关系,拿二位数组来说,它的数组名含有两个元素,这对于我们日后理解指针与多维数组有很大的帮助。
    4. 指针在某种程度上把程序员想要表达的指令以更接近机器的方式表达。数组表示法其实是变相的在使用指针,如:int d[4];     d+2==d[2](相同的地址),*(d+2)==d[2](相同的值)。既可以用指针表示数组名,又可以用数组名表示指针,又如:int  a[3];int *p=a;    则 p[1]==a[1];
    5.如果指针做函数的形参,int sum(int *p)可以写成sum(int p[ ])而且也只有在函数原型或函数定义头中可以这样替换。       



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值