易截截图软件、单文件、免安装、纯绿色、仅160KB

关于C几个指针的问题——请帮忙解惑

1.为什么定义函数时:fun1 可以正确的返回而fun2不行?
char * fun1()
{
  char *p = "haha";
  return p;
}
char * fun2()
{
  char p[] = "haha";
  return p;
}
是否可以这样理解:
fun1中p是一个local的变量,它指向一个空间,空间中存储有haha,函数结束时p这个变量被destroy掉,而它指向的空间还是有数据没有被销毁,给常量字符串分配的空间有什么不同,是否是编译时分配而不是允许时分配,所以这部分内容一致都有?
而fun2中给p分配一块空间装haha,函数结束这块被分配的空间被收回,里面的内容也就没有了。

2.关于多维数组的问题:
void fun3()
{
  char p[][4] = {"11","22","33","44"};
  printf("%s",p+1);//这个可以输出22
  printf("%s",*(p+1));//这个可以输出22
  printf("%s",p[1][4]);//为什么这个错误*(p+1)不就是p[1][4]嘛?
}


http://blog.163.com/yan_zhennan@126/blog/static/10934475020098128952406/


**(p+1)是p[1][0]



printf("%s",p[1][4]);//为什么这个错误*(p+1)不就是p[1][4]嘛?

反正越界了。 http://blog.163.com/xuchaoyang88/blog/static/17339733200981525955103/

char *p = "haha"; “haha"存储在常量区,程序结束才释放
char p[] = "haha"; 存储在栈上,函数结束就没了
p[1][4]是字符,用%c

对于数组元素a[i][j


相关问答:

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

execl怎么调用java程序 - C/C++ / C语言

如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。

不会.

运行java程序
找工具查看一下那个程序的命令行

搜索下:jni ......

c# listview添加合计行 - .NET技术 / C#

用listview显示出从数据库中查询出的记录,想在最后记录后面添加一条合计行,如何实现!谢谢大家!
绑定数据你应该没问题吧,绑定完以后用一个循环把你要统计数据的列中的数据总和用一个变量接受,然后在循环外面ne ......

关于 tiny c 段错误的问题 - C/C++ / C语言

小弟最近在了解关于tiny c 的问题。在linux下准备安装。但安装完成后碰到了一些问题。希望大家能够帮忙解决。以下是安装完成后的执行步骤。
[student@localhost ~]$ tcc -v
tcc version 0.9.25
[student@localhos ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号