指针和字符数组笔试题及其解析(第三组)

简介: 指针和字符数组笔试题及其解析(第三组)

个人主页Lei宝啊

愿所有美好如期而遇


第三组笔试题

char *p = "abcdef";
printf("%d\n", sizeof(p));
printf("%d\n", sizeof(p+1));
printf("%d\n", sizeof(*p));
printf("%d\n", sizeof(p[0]));
printf("%d\n", sizeof(&p));
printf("%d\n", sizeof(&p+1));
printf("%d\n", sizeof(&p[0]+1));
printf("%d\n", strlen(p));
printf("%d\n", strlen(p+1));
printf("%d\n", strlen(*p));
printf("%d\n", strlen(p[0]));
printf("%d\n", strlen(&p));
printf("%d\n", strlen(&p+1));
printf("%d\n", strlen(&p[0]+1));

答案

8 8 1 1 8 8 8

6 5 error error 随机值 随机值 5

(博主用的是64位机器,所以地址占的空间大小为8字节,如果得4的话,是32位机器)  

 

解析

  char* p = "abcdef";
  printf("%d\n", sizeof(p));
  //p是字符指针,大小为4/8
  printf("%d\n", sizeof(p + 1));
  //p指向字符'b',求的还是p的大小,4/8
  printf("%d\n", sizeof(*p));
  //p指向'a',解引用访问'a',所以大小为1个字节
  printf("%d\n", sizeof(p[0]));
  //'a',1字节
  printf("%d\n", sizeof(&p));
  //&p,指针类型为char**,还是指针,4/8
  printf("%d\n", sizeof(&p + 1));
  //跳过一个char**大小的指针,还是char**类型的指针,4/8
  printf("%d\n", sizeof(&p[0] + 1));
  //指向'b'的指针,4/8
  //--------------------------------------------------------
  //--------------------------------------------------------
  printf("%d\n", strlen(p));
  //长度为6
  printf("%d\n", strlen(p + 1));
  //长度为5
  printf("%d\n", strlen(*p));
  //error, *p是'a',ASCII值为97,当做地址传入strlen,
  //成为野指针,非法访问
  printf("%d\n", strlen(p[0]));
  //同理
  printf("%d\n", strlen(&p));
  //随机值,指针类型为char**,指向p这个指针
  //注意p是指向字符串首元素的。
  printf("%d\n", strlen(&p + 1));
  //随机值,同理
  printf("%d\n", strlen(&p[0] + 1));
  //指向第二个字符,长度为5

目录
相关文章
|
15天前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
1天前
|
Java
解析java中的数组
解析java中的数组
9 3
|
9天前
|
存储 程序员 C语言
【C 言专栏】C 语言指针的深度解析
【4月更文挑战第30天】C 语言中的指针是程序设计的关键,它如同一把钥匙,提供直接内存操作的途径。指针是存储其他变量地址的变量,通过声明如`int *ptr`来使用。它们在动态内存分配、函数参数传递及数组操作中发挥重要作用。然而,误用指针可能导致错误,如空指针引用和内存泄漏。理解指针的运算、与数组和函数的关系,以及在结构体中的应用,是成为熟练 C 语言程序员的必经之路。虽然挑战重重,但掌握指针将增强编程效率和灵活性。不断实践和学习,我们将驾驭指针,探索更广阔的编程世界。
|
15天前
|
存储 C语言
指针深入解析(C语言基础)带你走进指针,了解指针
指针深入解析(C语言基础)带你走进指针,了解指针
|
15天前
|
C语言 C++
C语言:指针运算笔试题解析(包括令人费解的指针题目)
C语言:指针运算笔试题解析(包括令人费解的指针题目)
|
29天前
|
存储 程序员 编译器
爱上C语言:指针很难?来来来,看看这篇(基础篇)
爱上C语言:指针很难?来来来,看看这篇(基础篇)
|
4天前
|
C语言
c语言指针总结
c语言指针总结
10 1
|
17天前
|
安全 C语言
指针与字符串:C语言中的深入探索
指针与字符串:C语言中的深入探索
15 0
|
18天前
|
存储 监控 C语言
c语言的指针
c语言的指针
22 0
|
24天前
|
编译器 C语言 C++
初阶指针(C语言)
初阶指针(C语言)

推荐镜像

更多