当前位置:首页 > 内存 > 正文

char型常量在内存中存放的是

  • 内存
  • 2024-06-15 06:14:03
  • 3737

一、C语言中char*a[]什么意思,他和char(*)a[]有什么什么区别?

这两种类型的区别如下:

1.“读取”和“写入”功能

char*a="abcd";存储在恒定区域。您只能通过指针访问字符串常量,但不能更改它们。

还有chara[30]="abcd";现在“abcd”存储在堆栈中。数组内容可以通过指针访问和修改。

2.时间分配

char*a="abcd";在编译时确定(因为它是一个常量)。

chara[30]="abcd";在运行时确定

3.指向的地址中存储的值是不同的。

对于char**p1,类型*p1是char*类型,类型**p1是char类型。

对于指针类char*p2,*p2的类型为char。

char*a="abcd";存储在静态存储区中。堆栈上的数组比指针指向的字符串更快。慢

chara[30]="abcd";存储在堆栈中。快速地。

4.内存分配方式

内存分配有三种类型:堆、栈、静态存储。功能不同;使用方法也不同。

1.堆栈:这是变量的存储区域,需要时由编译器分配,不需要时自动清除。内部变量通常是局部变量、函数参数等。

2.堆:是由new或malloc分配的一块内存。当不适用时,必须手动使用delete或free来释放内存区域。

3.静态存储:在程序编译时分配的内存,并且在程序运行期间持续存在。主要存储静态数据、全局数据、常量。

但是,好的编程习惯是:如果动态内存不再使用,则应将其释放,并立即将指针设置为NULL,以防止创建野指针。

参考资料:

——atof