CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

char *s 和 char s[]的疑惑

楼主fidt982(痴心绝对~0~)2005-10-25 14:37:27 在 C/C++ / C语言 提问

#include   <stdio.h>  
   
  char   *Func()  
  {  
  char   s[]   =   "hello   world!";       ////  
  return   s;  
  }  
   
  void   main()  
  {  
  char   *s   =   Func();  
  printf("%s",s);  
  getchar();  
  }  
   
  如上,用VC编译会发出如下警告  
  returning   address   of   local   variable   or   temporary  
   
  但如果换成char   *s="hello   world";  
  却正常,  
   
  char   *s   和   char   s[]两者之间有何不同,  
  char   s[]是在栈区分配空间,函数体结束后会自动销毁,那char   *s   了. 问题点数:20、回复次数:2Top

1 楼megaboy(飞天御剑流之杀神一刀斩)回复于 2005-10-25 14:40:21 得分 20

char   s[]是在栈区分配空间,函数体结束后会自动销毁,那char   *s   了  
  -------------------------------------------------------------  
  对于char   *s   ="hello   world";   s指向的是字符串常量,字符串常量不是存放在栈中的,而是存放在静态存储区的,程序结束的时候它才会销毁,程序运行期间它一直存在。Top

2 楼lzp229(只想飞)(卡卡)回复于 2005-10-25 14:47:19 得分 0

这样的问题真是多。平均几天就会有一道题。Top

相关问题

  • linux下的open(char *filename. int oflag)疑惑
  • struct A;str = (char *)A);-结构体对象转换为char*的疑惑?
  • Delphi 和原生ADO 疑惑!!!
  • 关于==和equals的疑惑。
  • 疑惑: 关于override 和 base!
  • 编程和应用时的Sybase——疑惑
  • 一个有关多线程和疑惑!!!???
  • protected和static关键字的疑惑!
  • 学习DLL和钩子的疑惑
  • socket 发送和接收的疑惑

关键词

  • 销毁
  • 结束
  • 区
  • hello world
  • char

得分解答快速导航

  • 帖主:fidt982
  • megaboy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo