首页 > 其他分享 >【C语言】指针和数组经典练习题(一)

【C语言】指针和数组经典练习题(一)

时间:2024-07-03 22:57:06浏览次数:3  
标签:练习题 arr C语言 数组名 数组 printf sizeof strlen 指针

//一维数组
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));

 

//字符数组
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));

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

 

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

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

 

//二维数组
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]));

 

总结:

数组名的意义:

1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。

2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。

3. 除此之外所有的数组名都表示首元素的地址。 

标签:练习题,arr,C语言,数组名,数组,printf,sizeof,strlen,指针
From: https://blog.csdn.net/weixin_66400112/article/details/140088551

相关文章

  • #C语言基础 笔记三
     指针和数组直接访问:按变量的地址存取变量的值(通过数组名访问)间接访问:通过存放变量的地址的变量去访问元素(通过指针访问)1.指针和一维数组inta[5]={1,2,3,4,5};int*p=a;直接访问:inta[5]={5,4,3,2,1};int*p=a;printf("%p%p%p\n",......
  • C语言两个较大数字相加
    C语言两个较大数字相加思路分析由于C语言中的基本数据类型(如int、long等)有固定的大小,无法直接处理非常大的数字(如数百位的数字)。因此,我们需要采用字符串或数组来表示大数字,并逐位进行加法操作。具体思路如下:输入处理:将两个大数字以字符串的形式输入,并将其反转,以方便从低......
  • C语言笔记(第n版):数据类型与运算
            尽管对于计算机而言无所谓数据类型,因为所有的数据都在计算机中以二进制数进行存储,运输和计算,但是对数据进行人为的划定有益于人们对于数据的操作。        在C语言中对于数据类型的划分(因人而异)大致为:一、基本数据类型 什么是数据类型?   ......
  • C语言命名规范
    C语言命名规范在C语言中,命名规范对于代码的可读性和可维护性至关重要。以下是一些常见的C语言命名规律和建议变量命名变量名应该具有描述性,清晰地表达变量的用途或含义。变量名使用小写字母和下划线(snake_case)的组合,例如intmy_variable;。避免使用单个字符作为变量名,除非......
  • c语言基础3
    [1]运算符1.1逻辑运算符&&逻辑与:全真则真,一假则假||逻辑或:一真则真,全假则假!逻辑非:非真则假,非假则真0为假1为真printf("%d\n",2>3);//0printf("%d\n",22>3);//1printf("%d\n",12>3&&8<6);//0printf("%d\n",12>3||8<......
  • C++ 彻底搞懂指针(3)
    1.数组指针、二维数组指针、字符串指针1.1定义一个数组指针前面说过,指针变量存放的是地址,它可以存放普通变量的地址,可以存放另一个指针变量的地址,当然也可以存放数组、结构体、函数的地址。如果一个指针指向了数组,就称它为数组指针,比如下面的代码就定义了一个指针p指向......
  • 信息安全数学基础的几个C语言代码
    相关书籍:《信息安全数学基础-陈恭亮-清华大学出版社-第2版》(豆瓣)1.埃氏筛/*输入一个正整数,输出小于其的全部素数*/#include<stdio.h>#include<stdbool.h>#defineMAXN100001boolvis[MAXN]={1,1};voidEra(intqwq){for(inti=2;i<=qwq;i++){if(vis[......
  • C语言基础知识 - 第一章初步了解C语言(1)
    第一节C语言概述一.基础概念理解1.由计算机高级语言所编写的程序被称为源代码2.语言的分类:3.C语言属于高级语言,其编写程序扩展名为.c(源文件),经过编译后生成的文件的扩展名为.obj(目标文件),经过链接后生成文件的扩展名为.exe(可执行文件)4.C语言程序的执行过程为编译和链......
  • 力扣每日一题 7/2 数学、数论、数组/双指针
    博客主页:誓则盟约系列专栏:IT竞赛专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......
  • C语言小项目-词法分析器
    1.什么是词法分析器?        词法分析器是编译器中的第一个阶段,其主要任务是扫描输入的源代码字符流,并将字符组成的序列转换为有意义的标记(Token)。每个Token包含一个词法单元的信息,如关键字、标识符、运算符、常量等。例如,对于表达式inta=10;,词法分析器会生成诸......