《C专家编程》学习笔记(令人震撼的事实:数组和指针并不相同)

来源:互联网 发布:伪装电话号码软件 编辑:程序博客网 时间:2024/04/28 09:28

一、声明与定义

 1、C语言中的对象必须有且只有一个定义,但它可以有多个extern声明。

 2、声明和定义的区别 

定义

只能出现在一个地方

确定对象的类型并分配内存,用于创建新的对象。

声明

可以出现多次

描述对象的类型,用于指代其他地方定义的对象。

3、使声明与定义相匹配的方法


二、数组和指针

 1、数组指针并不完全相同。

 2、数组和指针的区别

指针

数组

保存数据的地址

保存数据

间接访问数据,首先取得指针的内容,把它作为地址,然后从这个地址提取数据。如果指针下有一个[I],就把指针的内容加上I作为地址,从中提取数据。

直接访问数据,a[I]只是简单地以a+I作为地址取得数据。

通常用于动态数据结构。

通常用于存储固定数目且数据类型相同的元素。

相关的函数为malloc()、free()分配内存。

隐式分配和删除

通常指向数据

自身即为数据名

定义指针时编译器并不为指针所指向的对象分配空间,它只是分配指针本身的空间。除非对指针进行初始化(只有字符串常量才可以如此)且所指的对象是只读的。

由字符串常量初始化的数组可以修改。


0 0
原创粉丝点击