为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C语言指针与内存

难度初级
时长 2小时 5分
学习人数
综合评分9.60
263人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.4 逻辑清晰

最新回答 / 慕无忌5762020
一样的 就是工具不太一样而已 用了许多年的windows  改成linux 不习惯而已

最新回答 / 慕妹4208312
有编译器优化,也有处理器优化。我的array地址在a的前面。编译器版本不同,cpu不同,都会造成差异。总之,指针别乱用。

最新回答 / 慕娘2476497
用16进制算一下,8,9,a,b,c,d,e,f,占8个字节

最新回答 / 低调_低调
老师的风格就是这样,如果实在看不懂我建议先去看看指针相关的知识,然后回头看会更简单

最新回答 / 总有民女想推朕
因为老师的代码中写的时array[2]进行测试的,所以结果不一样,而且第四个和第五个输出的值是随机生成的,不同的电脑有差别,第六个才是array[0]

最新回答 / 慕田峪1875512
应该没问题的,你把程序调试到return 0再去打印str和str3的地址,因为你的str3都没初始化系统应该没有给他分配存储空间,程序还没运行到那里你就打印它的地址应该不对,我是这样理解的

最赞回答 / 慕容1179891
等号右边*a表示取出指针a指向的数据,这里tmp就是整数类型,所以不需要加。换言之,tmp表示整数类型,*a也表示整数类型。造成这样的疑惑是因为对于*a在不同位置理解含义不同导致的:*a处于函数参数位置时,仅表示这里函数传参需要一个指针类型的变量;当*a处于等号右边时表示取出指针a代表的实际变量值。

已采纳回答 / Duaire
虽然很想回答,但是感觉你可以去看视频下方的回答会更好,虽然很多人都回答了一部分比较零碎 但是整合一下几乎就差不多是视频知识点的总结了

最赞回答 / kkskylin
*p开始是指向a是吧.因为是在循环里打印的嘛.第一个输出*p=3这是a 的值 没有错吧.而这时候i的值 是0.到了第二次循环.i的值 就变成了1哦.p++了就指向了第二个地址也就是i所在的地址了.所以输出的值 是1了.希望能帮你理解..

最新回答 / weibo_昵称不是名字咩_0
#include <stdio.h>#include <stdlib.h>#include <string.h>void sort(char*name[],int m){  char*t;  int i,j,k;  for(i=0;i<m-1 ;i++){      k=i;      for(j=i+1 ;j<m;j++){          if(strcmp(name[k],name[j])>0){              k=j;      ...

最新回答 / 李华东
你就没有发现你粘上来的代码一堆BUG吗?
课程须知
本课程是C语言中级课程,为了更好的学习效果: 1、需要有一定的C语言基础,如果没有基础的同学可以看《C语言入门》这门课。 2、本课程是在Linux环境下讲解,需要熟悉一些Linux命令。如果不了解的话可以在《Linux C语言编程基本原理与实践》这门课程中补充
老师告诉你能学到什么?
1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消