2016-9-22题目:extern char* 与char[]
来源:互联网 发布:域名别名是什么意思 编辑:程序博客网 时间:2024/05/19 16:21
假如file1.cpp定义了一个char[]全局数组:
char c[] = {'a','b','c'};
然后在同工程的另一个文件file2.cpp这般extern:
#include <cstring>#include <iostream>using namespace std;//extern char c[]; //正确extern extern char *c; //错误,char[]和char*是两种东西,编译不通过,或者某些编译器可以通过但是运行崩溃int main(){cout<<c<<endl; return 0;}结果如何?
需要注意,char[]和char*是两种不同的定义,不能相互替代,所以extern声明了一个char*数组,并告诉编译器它原本的定义在别的工程下文件可以找到,但结果编译器找不到char*的定义,只有个不能匹配char* 的 char[]的定义,所以按理说编译应该会报无法找到外引用的变量的错误。某些编译器可能会编译通过,但是运行崩溃,因为cout<<c<<endl;试图输出一个找不到定义的c。
另外,备忘个知识点:
全局变量必须初始化,例如:
const int a; //编译错误:全局变量必须要被初始化正确写法要给它初始化:
const int a = 1
0 0
- 2016-9-22题目:extern char* 与char[]
- extern char *a与extern char a[]
- char *p 与 extern char*p区别
- 理解extern char s[100]与extern char *s
- 理解extern char s[100]与extern char *s
- char arr[]和extern char*
- extern char s[100]与extern char *s 的使用区别
- extern char **environ;
- char[] 与 char *
- unsigned char与char
- unsigned char与char
- char[] 与 char *区别
- char * 与 char[] 区别
- char 与 unsigned char
- char[]与char*
- unsigned char 与 char
- char 与 unsigned char
- unsigned char 与 char
- 实验1 标准体重计算器
- 关于checkbox有了checked='checked' 却不显示对号的解决方法
- iOS 三种拨打电话
- Java排序算法--建立堆和堆排序(转)
- eclipse使用总结:workspace设置
- 2016-9-22题目:extern char* 与char[]
- JAVAWEB静态代码块读取文件问题
- 基于 Quartz 开发企业级任务调度应用
- STM32中GPIO工作模式
- 左手坐标系和右手坐标系(以及右手定则左手定则)
- 【2016-沈阳赛区网络赛-J】大素数模板(Count primes,uva 5901)
- 在windows上安装RabbitMQ
- Linux基本命令笔记
- 结构体三级排序(nyoj 17)