码迷,mamicode.com
首页 > 编程语言 > 详细

指针和数组(笔记)

时间:2015-02-25 21:06:11      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

一、指针

1.指针的初始化是用&操作符完成的,它用于产生操作数的内存地址。

2.通过一个指针访问他所指向的地址的过程称为间接访问(indirection)或者解引用指针。这个用于执行间接访问的操作符是单目操作符*。

3.如果变量是静态的,他会被初始化为0;但是如果变量是自动的,它根本不会被初始化。

4.对一个NULL指针进行解引用操作是非法的。因此在对指针进行解引用操作之前,你首先必须确保它并非NULL指针。

二、数组

1.在C中,在几乎所有使用数组名的表达式中,数组名的值是一个指针常量,也就是数组第一个元素的地址,它的类型取决于数组元素的类型。

三、数组和指针

  两个声明:

  int a[5];

  int *b;

  声明一个数组时,编译器将根据声明所指定的元素数量为数组保留内存空间,然后,在创建数组名,它的值是一个常量,指向这段空间的起始位置。声明一个指针变量时,编译器只为指针本身保留内存空间,它并不为任何整型值分配内存空间。而且,指针变量并未初始化为指向任何现有的内存空间,如果它是一个自动变量,它根本不会被初始化。

  上述声明之后,表达式*a是完全合法的,但表达式*b却是非法的。*b将访问内存中某个不确定的位置,或者导致程序终止。另一方面,表达式b++可以通过编译,但a++却不行,因为a的值是个常量。

指针和数组(笔记)

标签:

原文地址:http://www.cnblogs.com/Catherine0424/p/4300072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!