寒假作业-day9-C语言题目1-20

1>段错误

传递的是str字符指针的副本,给副本分配了内存,函数结束后未能给str分配内存。

2>不会是NULL,但不一定是HelloWorld

会报警告:返回局部变量的地址

局部变量在函数结果后释放空间,返回的为非法地址

str指向该非法地址,str会输出东西,但不一定是局部变量的内容,有可能会被其他程序占用部分地址

用函数返回值来传递动态内存

3>hello world

传递的是字符指针的地址,可以对传指针的地址副本对值进行改变可以改变原指针的值

4>world

此时str为野指针,随机指向一个地址,不为空。

5>

int a        int *a        int **a        int a[10]        

int *a[10]        int (*a)[10]        int (*a)(int)        int(*a[10])(int)

(要认识,也要能说)

6>        6        1        4

7>        101

8>        100            2

9>        b

10>       a

11>        a

画栈图

12>        c

&a+1:偏移整个数组的大小        *(ptr-1) -->a[4]

13>        b

++b --> b+1 :首地址偏移一行:b[0][0] --> b[1][0]

所以a[2][1]在该函数中为b[1][1]

14>        c

逗号表达式以最后一个运算为主

逗号运算符优先级低与等号运算符

括号内的运算符比括号外的运算级高

15>        b        a

ptr指向第一行第一个元素的首地址:(*ptr)[1] -->(*ptr+0)[1] -->p[0][1]

(*ptr)[1] 第一行第二个元素

++ptr;

指向下一行

16>        a        c

17>        c        

i++++和++++i是错误的写法:C语言中,i++和++i是右值,不能再++

18>        a

19>        a

画栈图

20>        c

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值