有关C语言指针的问题:为什么最后结果是空指针

有关C语言指针的问题:为什么最后结果是空指针,第1张

字符串常量不能够进行赋值或当做返回值,如下情况。

不可以这样:

char str[10];

str[10]="123456";

只可以这样:

char str[10]="12345678";

//这个属于定义变量并初始化的过程,应注意与普通的赋值语句进行区别

没问题啊 我用vs2005试的

应该是你的1txt存放位置不对 你可以换换试试

这是我放的位置

比如我的工程目录为1

在1文件夹下还有一个1文件夹 我把1txt放里面了

v60好像跟vs2005不一样 不过你把1txt 多换几个目录试试就行了

getParentFile和getParent输出的上层目录,是根据你创建File对象时输入的路径字符串,解析不出来的。API如下

getParentFile

public File getParentFile()返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null。

抽象路径名的父 路径名由路径名的前缀(如果有)以及路径名的名称序列中最后一个名称以外的所有名称组成。如果名称序列为空,那么该路径名没有指定父目录。

返回:

由此抽象路径名指定的父目录的抽象路径名,如果此路径名没有指定父目录,则返回 null

从以下版本开始:

12

--------------------------------------------------------------------------------

因为你的路径名是test1class,从这个路径字符串解析不出来上级路经,这个方法是直接分析文件分割符的,windows下就是\。你用下面代码运行看看就知道了

import javaio;

public class PrintArguments {

public static void main(String[] args) throws NullPointerException

{

File f=new File("aaa\\test1class");

Systemoutprintln(fexists());

// GetFiles a=new GetFiles();

Systemoutprintln(fgetAbsolutePath());

Systemoutprintln(fgetParent());

File b=fgetParentFile();

Systemoutprintln(bgetAbsolutePath());

if(b==null)

Systemoutprintln("null");

}

}

语言定义中说明, 每一种指针类型都有一个特殊值—— “空指针” —— 它与同类型的其它所有指针值都不相同, 它“与任何对象或函数的指针值都不相等”;

不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。

指针是个很强大的工具,可是正因为它太强大,所以要 *** 作它不是件易事。 *** 作不当造成的野指针,甚至会引起系统死机等比较严重的后果。

 如果程序定义了一个指针,就必须要立即让它指向一个我们设定的空间或者把它设为NULL,如果没有这么做,那么这个指针里的内容是不可预知的,即不知道它指向内存中的哪个空间(即野指针),它有可能指向的是一个空白的内存区域,可能指向的是已经受保护的区域,甚至可能指向系统的关键内存,如果是那样就糟了,也许我们后面不小心对指针进行 *** 作就有可能让系统出现紊乱,死机了

以上就是关于有关C语言指针的问题:为什么最后结果是空指针全部的内容,包括:有关C语言指针的问题:为什么最后结果是空指针、vc6.0 中fopen()函数为什么总是返回空指针、为什么我的程序getParentFile()函数返回null呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9520536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存