5.8指针练习题

qsort(快速排序 可排序整形 字符串 结构体)

头文件stdlib.h

快速排序

有四个参数

第一组

1.16 sizeof和数组名方以及是整个数组大小还有&数组名 取出的是整个数组的地址除此之外数组名都是是首元素地址

2.a没有放到arr中而是 a+0 所以只是一个地址是4 32位或8字节(平台可能不同)

3.*a是第一个元素 4

4.int*类型加1直接跳过一个元素 a+1就是第二个元素的地址4

5.4

第二组

1.&a取出整个数组的地址 但是整个数组地址还是个地址sizeof计算的是地址大小大小只能是4或8

2.&a是数组地址 在*解引用是数组 是16 解引用理解为引用指针指向的变量值,引用其实就是引用该变量的地址 也可以理解为*和&抵消

3.根据2.得实际上是数组地址加一 也就是把数组地址放入一个指针数组 指针数组加一 跳过整个数组但是还是地址而已 4或8

4.取出第一个元素地址4或8

5.4或8

第三组字符数组

 1.整个数组大小 6

2.同第一组2. 4或8地址大小都是4或8与类型无关

3.a的大小 1

4.第二个元素 1

5.4或8

6.4或8跳过整个数组 如果是+2跳过12个字节

7.4或8

第四组

此中定义方法没有\0

1.首元素开始数没有\0继续往后随机值

2.首元素地址+0和1.一样

3.*arr传 字符a 是97 把97当做地址出问题了 

4.传b的阿斯克马志 98 把98当做了地址传过去的不管是什么被strlen当做地址了

 5.取出数组地址类型是char(*)【6】 放入strlen类型变成char* 就从开始往后数 结果随机

6.跳过一个数组再传给strlen往后数 也随机数

7.b的地址开始往后数 还是随机数

结尾有\0

1.7个字符 还有\0 七个元素每个是cahr所以是7

2.a的地址4或8

3.第一个元素 1

4.第二个元素 1

5.整个数组地址 还是地址 4或8

6.还是地址 4或8

7.第一个元素地址加一 是第二个元素地址 或8

a,b,c,d,e,f,\0 

1.6遇到\0停止

2.同1. 6

3.给的是98当做了地址err

4.同3.

5.取出整个数组地址 从改地址往后数 同1. 6

6.加一跳过整个数组开始 不知道神魔时候遇到\0 随机值

7.从第二个元素开始数 5

注意类型是*char

1.字符指针大小p是a的地址 4或8

2.是b的地址 4或8

3.p指a*p指a a的大小是1

4.p[0]等价于*(p+0)还是1

5.&p是p的地址 4或8

6.加一直接跳过p的地址 还是地址4或8

7.还是地址4或8

 1.p是a的地址 strlen从a开始 6

2.从b开始 5

3.把a传给strlen 97当做地址 出错

4.同3.

5.

p存的是a的地址 指向a

 p是字符串的地址 但是&p(p的地址)不知道

随机值

6.跳过去 还是随机 但是和5.的随机值完全没有关系 隔了一个&p因为&p不知道

7.第一个元素地址加一 b的地址 5

1. 48 12个int 4*12=48

2. 第一行第一个元素 4

3.第一行所有元素 4*4=16a[0]单独放才是一整行

 4.a[0]作为数组名没有单独放在sizeof内部 表示第一行第一个元素地址 +1是第一行第二个元素的地址  4/8.

5.由4.的 先是第一行第二个元素地址 再*拿到的是元素本身 是int 所以是4

6.a是二维数组数组名 没有取地址也没有单独放在sizeof内部 是二维数组组首元素地址也就是第一行的地址 加一跳过一行 是第二行的地址 地址 4

7.由6.得第二行地址再* 就是第二行元素总大小16

8.a[0]第一行数组名取地址取出的就是是第一行地址 +1表示第二行地址 4

9.a是二维元素首元素地址也就是第一行地址 解引用得到第一行 *a就是第一行元素 16

10. 16

 如果有第四行 应该仿照前几行格式 也是一行四个 16 

 

 值属性 8 类型属性是int

而上面没有真的访问第四行 只是在意其类型属性是int 4*4=16

sizeof内部的表达式是不计算的!

 虽然是整形 但是还是s说的算还是 short 第一个结果是 2

而s结果还是 5 因为sizeof内部的表达式是不计算的!

 

 2 5

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值