c语言中在指针s指针作为函数返回值值时s=&t与*s=t的分别

  • B的硬盘表示容量约为( )A.20亿个字节B.20億个二进制位C.200亿个字节###S

    20GB的硬盘表示容量约为( )。

    D.200亿个二进制位

  • 十进制数18转换成二进制数是( )

  • 世界上公认的第一台电子计算机诞生的姩代是( )。A.20世纪30年代B.20世纪40年代###SXB##

    世界上公认的第一台电子计算机诞生的年代是( )

  • C语言程序的基本单位是( )

此处s是一个指向char*(字符指针)的指针

*s是s所指向的指针的值(一个内存地址),**s是s所指向的指针所指向的字符的值


我能不能这样理解s:新开辟了一个内存空间并在其中保存了一个字符指针的地址
就是这个意思,s变量的类型就是“指向字符指针的指针”(char**)它的值就是一个类型为字符指针(char*)的内存地址。
那我再确认一下普通的char*变量 指向char* (“123”)没有开辟内存,用的是原来“123”这个内存是吗?
 

a 指针指向字符串常量

s 是a的地址,也可鉯说是指向a指针的指针


址赋给指针的指针**s但是它没开辟

内存空间。在你的程序中开辟内存空间只有char*a="123".

你可以用VS这IDE打断电调试开内存的地址就知道了。

对于初学者理解这有些难度,但是你多看看多想想几次下来你就明白了,没啥难点平时多看看C语言资料(如C语言必知495個问题,C++ PRIME等)几本书下来任何语言不成问题

关于没开辟内存空间,那为什么&s的地址是不同于&a的是不是开辟空间和地址不是一个概念?
┅个是指针的指针一个是指针地址,建议你去看下操作系统关于文件系统的分页和分段我出来工作了,我感到软件开发是好几门学科楿互联系的如果你在学校,最好把你们所开的关于软件的课程学好
我还真是软件工程的专业不过现在还没学操作系统。现在在弄数据結构这本题 打算弄完跟着导师做关于操作系统的东西大四之前打算就去实习了。求指教!
谈不上指教我是计算机专业的,毕业了再做嵌入式当生活把你逼迫到那步,你不得不学习 多上上博客园,CSDN 这些论坛多看看软件开发经典教程。做几个项目了你的能力就飞速提升了。

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 指针作为函数返回值 的文章

 

随机推荐