关于object-C的简单问题

学习 时间:2026-04-08 05:18:28 阅读:3551
关于object-C的简单问题const char *word[4]={"aaa","sssdd","sssss","sss111"}这个是char数组吗还有一个 char word[100];while(fgets(word,100,wordFile)){word[strlen(word)-1]='\0'}这两个有什么区别吗,还有关于fgets()希望能顺便讲一下,里面3个参数的含义

最佳回答

大意的香水

甜美的高跟鞋

2026-04-08 05:18:28

const char *word[4]={"aaa","sssdd","sssss","sss111"}这个是char数组吗?是一个字符类型的指针数组,高级语言里又叫String 数组,word 是这个指针数组的首地址变量,也叫做指针的指针。其实可以这样理"aaa" 字符串在内存里被分配3字节的空间块,那么 word[0] 里记录的是这个空间块的地址 ,所以 word[0] 是一个地址变量,也就是常讲的指针。但前面已经写了一个 const 所以,这不能再改变,不能再获取其他字符串内存块的地址,永远只能属于"aaa",也就不是变量,而是常量。同理 word[1] -> "sssdd" 。fgets( 从字符串数组读取一行字符 ,缓存大小 ,指向一个打开的文件对象 )意思 是把文件的一行读入 word[100] 内 当然,可能文件中,一行远超过100个字节但第二个参数已经限定,如果超出100字节就不读了,保证word[100]能容纳不内存溢出。如果fgets( ,,) 函数在读取过程中,发生以下三种情况时,读取停止:1。发现换行符2。发现文件终结符EOF3。发生错误而这个函数在什么情况下会返回NULL呢,就是上述的第2和第3种情况发生时,会返回NULL,此时循环退出。当然,如果你是学习Object-C iPhone编程的,你可以使用乔帮主的NS系列变量NSString * word[4]={ "aaa","sssdd","sssss","sss111" }因为Object-C 所有变量都是以指针的形式定义,所以,你要对指针概念理解非常透彻才行哦

最新回答共有2条回答

  • 粗犷的电脑
    回复
    2026-04-08 05:18:28

    const char *word[4]={"aaa","sssdd","sssss","sss111"}这个是char数组吗?是一个字符类型的指针数组,高级语言里又叫String 数组,word 是这个指针数组的首地址变量,也叫做指针的指针。其实可以这样理"aaa" 字符串在内存里被分配3字节的空间块,那么 word[0] 里记录的是这个空间块的地址 ,所以 word[0] 是一个地址变量,也就是常讲的指针。但前面已经写了一个 const 所以,这不能再改变,不能再获取其他字符串内存块的地址,永远只能属于"aaa",也就不是变量,而是常量。同理 word[1] -> "sssdd" 。fgets( 从字符串数组读取一行字符 ,缓存大小 ,指向一个打开的文件对象 )意思 是把文件的一行读入 word[100] 内 当然,可能文件中,一行远超过100个字节但第二个参数已经限定,如果超出100字节就不读了,保证word[100]能容纳不内存溢出。如果fgets( ,,) 函数在读取过程中,发生以下三种情况时,读取停止:1。发现换行符2。发现文件终结符EOF3。发生错误而这个函数在什么情况下会返回NULL呢,就是上述的第2和第3种情况发生时,会返回NULL,此时循环退出。当然,如果你是学习Object-C iPhone编程的,你可以使用乔帮主的NS系列变量NSString * word[4]={ "aaa","sssdd","sssss","sss111" }因为Object-C 所有变量都是以指针的形式定义,所以,你要对指针概念理解非常透彻才行哦

上一篇 BC^2+OB^2=OC^2中 ^ 是啥意思啊?

下一篇 北方民居特点:平顶,墙厚