指针练习------详细的图文并茂法来解析

本文涉及的产品
云解析DNS-重点域名监控,免费拨测 20万次(价值200元)
简介: 指针练习------详细的图文并茂法来解析

int main()

{

   //一维数组

   int a[] = { 1,2,3,4 };

   printf("%d\n", sizeof(a));


   printf("%d\n", sizeof(a + 0));


   printf("%d\n", sizeof(*a));


   printf("%d\n", sizeof(a + 1));


   printf("%d\n", sizeof(a[1]));


   printf("%d\n", sizeof(&a));


   printf("%d\n", sizeof(*&a));


   printf("%d\n", sizeof(&a + 1));


   printf("%d\n", sizeof(&a[0]));


   printf("%d\n", sizeof(&a[0] + 1));

image.png

image.png

 //字符数组

image.png

   char arr[] = { 'a','b','c','d','e','f' };

   printf("%d\n", sizeof(arr));

   printf("%d\n", sizeof(arr + 0));

   printf("%d\n", sizeof(*arr));

   printf("%d\n", sizeof(arr[1]));

   printf("%d\n", sizeof(&arr));

   printf("%d\n", sizeof(&arr + 1));

   printf("%d\n", sizeof(&arr[0] + 1));

image.png

   printf("%d\n", strlen(arr));

   printf("%d\n", strlen(arr + 0));

   printf("%d\n", strlen(*arr));

   printf("%d\n", strlen(arr[1]));

   printf("%d\n", strlen(&arr));

   printf("%d\n", strlen(&arr + 1));

   printf("%d\n", strlen(&arr[0] + 1));

image.png

   char arr[] = "abcdef";

image.png

   printf("%d\n", sizeof(arr));

   printf("%d\n", sizeof(arr + 0));

   printf("%d\n", sizeof(*arr));

   printf("%d\n", sizeof(arr[1]));

   printf("%d\n", sizeof(&arr));

   printf("%d\n", sizeof(&arr + 1));

   printf("%d\n", sizeof(&arr[0] + 1));

image.png

   printf("%d\n", strlen(arr));

   printf("%d\n", strlen(arr + 0));

   printf("%d\n", strlen(*arr));//error

   printf("%d\n", strlen(arr[1]));//error

   printf("%d\n", strlen(&arr));

   printf("%d\n", strlen(&arr + 1));

   printf("%d\n", strlen(&arr[0] + 1));

image.png

//指针存常量字符串

   char* p = "abcdef";

image.png

   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));

image.png

   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));

image.png

   //二维数组

   int a[3][4] = { 0 };

image.png

   printf("%d\n", sizeof(a));

   printf("%d\n", sizeof(a[0][0]));

   printf("%d\n", sizeof(a[0]));

   printf("%d\n", sizeof(a[0] + 1));

   printf("%d\n", sizeof(*(a[0] + 1)));

   printf("%d\n", sizeof(a + 1));

   printf("%d\n", sizeof(*(a + 1)));

   printf("%d\n", sizeof(&a[0] + 1));

   printf("%d\n", sizeof(*(&a[0] + 1)));

   printf("%d\n", sizeof(*a));

   printf("%d\n", sizeof(a[3]));  

image.png

   return 0;

}

相关文章
|
12月前
|
存储 程序员 C++
深入解析C++中的函数指针与`typedef`的妙用
本文深入解析了C++中的函数指针及其与`typedef`的结合使用。通过图示和代码示例,详细介绍了函数指针的基本概念、声明和使用方法,并展示了如何利用`typedef`简化复杂的函数指针声明,提升代码的可读性和可维护性。
|
Serverless 编译器 C语言
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
188 0
野指针与空指针:深入解析与防范策略
野指针与空指针:深入解析与防范策略
|
C++ 存储 Java
C++ 引用和指针:内存地址、创建方法及应用解析
'markdown'C++ 中的引用是现有变量的别名,用 `&` 创建。例如:`string &meal = food;`。指针通过 `&` 获取变量内存地址,用 `*` 创建。指针变量存储地址,如 `string *ptr = &food;`。引用不可为空且不可变,指针可为空且可变,适用于动态内存和复杂数据结构。两者在函数参数传递和效率提升方面各有优势。 ```
214 3
多重指针:深入解析、应用与示例
多重指针:深入解析、应用与示例
|
C++
指针习题练习
指针习题练习
77 0
|
XML JSON Java
图文并茂:解析Spring Boot Controller返回图片的三种方式
图文并茂:解析Spring Boot Controller返回图片的三种方式
1560 0
|
9月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
873 29
|
9月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
357 4

推荐镜像

更多
  • DNS