|
发表于 2020-10-18 16:00:05
|
显示全部楼层
本帖最后由 xieglt 于 2020-10-18 16:18 编辑
c++里头,
只有字符串是可以这样定义,其他类型都不行。
char * pstr = "Hello,world";
这是因为 "Hello,world" 编译的时候被定义为已初始化数据,程序运行时会作为静态数据载入内存。
而且 pstr 是只读的 ,想修改 pstr 里的内容,如 pstr[0] = 'A' ; 这样的代码会造成非法内存访问异常
其他类型的常量数据都不会被作为已初始化数据。
double 类型的数组初始化有以下几种方式。
- double arr[5] = {1,2,3,4,5};
- double arr[] = {1,2,3,4,5};
- double * arr = new double[5];
- for(int i = 0 ; i < 5 ; i ++)
- {
- arr[i] = i;
- }
复制代码
以下几种都是错的。
double * arr = {1,2,3,4,5} // arr没有分配内存
double * arr = new double[5] { 1,2,3,4,5}; //arr分配了内存,但是不能这么赋初值。 |
|