关于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
相关问答:
如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。
不会.
运行java程序
找工具查看一下那个程序的命令行
搜索下:jni ......
在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......
挺繁琐,之前发的帖子,分值太低现在重发一个。欢迎各位大侠~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[] ......
希望给大家提供一些新的思路.
我们在使用C编程时会遇到一个问题,比如头文件的一个函数包含在一个lib 中,但是
在实际连接中我们不知道它在哪个库中。也许可行的一种办法是直接上网查询某个
函数的依赖条件,这对 ......
A表 有两个字段
id 唯一数字域
InfoTxt text 类型
我现在要把 id 不是14 的所有 InfoTxt字段 文本后面 都加上 'aaa'
按下面执行下来 只有表最后一行加上了 'aaa' ......