指针初阶题目演示
2019-03-13 13:18
127 查看
指针初阶题目演示
1.求下面代码的输出结果:
#include<stdio.h> 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)); }
结果为:
2…求下面代码的输出结果:
#include<stdio.h> int main() { 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)); }
结果为:
3…求下面代码的输出结果:
#include<stdio.h> int main() { char arr[] = { 'a','b','c','d','e','f' }; 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)); }
结果为:输出全部为未定义行为,因为这个字符数组没有’\0’
4…求下面代码的输出结果:
#include<stdio.h> int main() { char arr[] = "abcdef"; 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)); }
结果为:
5…求下面代码的输出结果:
#include<stdio.h> int main() { char arr[] = "abcdef"; 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)); }
结果为:6,6,未定义行为,未定义行为,6,未定义行为,5
6.求下面代码的输出结果:
#include<stdio.h> int main() { 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)); }
结果为:
7.求下面代码的输出结果:
#include<stdio.h> int main() { char*p = "abcdef"; 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)); }
结果为:6,5,未定义行为,未定义行为,未定义行为,未定义行为,5
8.求下面代码的输出结果:
#include<stdio.h> int main() { int a[3][4] = { 0 }; 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])); }
结果为:
9.求下面代码的输出结果:
#include<stdio.h> int main() { char a[3][5] = { '0' }; 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])); }
结果为:
相关文章推荐
- 指针进阶题目演示
- 另类循环队列---未实现题目要求,实现了双指针(Front、Rear)
- 题目:将二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向
- 从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用
- 【C++学习笔记】数组和指针再C-风格字符串的演示
- C和指针1.4题目
- 虽然没有礼品,希望大家能看看这几个关于指针的小题目
- 从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用
- ITK 中的智能指针与对象工厂演示-3
- C函数传递结构体指针 题目地址:http://ac.jobdu.com/problem.php?id=1061
- [leetcode]单链表类题目总结(应用双指针)
- 演示了指针的使用
- 找工作知识储备(3)---从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用
- 易出错的C语言题目之二:指针
- 一道关于二维数组和指针数组的C语言笔试题目
- 面试题目之指针
- C++指针加减-题目分析
- 20080306:上海华为的一道关于指针的编程题目
- [Leetcode][双指针/多指针]相关题目汇总/分析/总结
- 找工作知识储备(3)---从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用