C语言中的对象必须有且只有一个定义,但它可以有多个extern声明,extern是使用其他文件中定义的变量时需要的关键字
区分定义和声明
声明是普通的声明:这个名字已经匹配到一块内存上了,描述其他地方的创建的对象,声明可以声明多次
定义是特殊的声明:它为对象分配内存。声明没有分配内存,这是最大的区别。
定义指针时,编译器并不为指针所指向的对象分配空间,它只是分配指针本身的空间,除非在定义的同时分配给指针一个字符串常量进行初始化。
//定义字符串常量,不可再修改
char *p = "breadfruit";
//可修改
char p[] = {"blackmerry"};
//非法定义
float * a = 3.1415
指针和数组并不相同