
char str[] 和 char *str 的区别详解
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文深入解析C语言中`char str[]`和`char *str`的区别,探讨数组与指针的概念、内存分配及应用场景。
代码如下:
```c
char* get_str(void)
{
char str[] = {abcd};
return str;
}
```
在此函数中定义了一个局部字符数组`str`,尽管它是一个数组,但它实际上是一个局部变量,在函数执行完毕后会被销毁。因此返回它的地址会导致问题,因为这个内存已经被释放了。
代码如下:
```c
char* get_str(void)
{
char *str = {abcd};
return str;
}
```
这里定义了一个指向字符串常量的指针`str`并初始化为{abcd}. 返回一个指向堆栈中局部变量或临时数据地址的指针是不安全的做法,因为当函数结束时这些内存会被释放。
全部评论 (0)
还没有任何评论哟~


