首页 > 其他分享 >C-指针与数组

C-指针与数组

时间:2023-04-07 18:44:05浏览次数:38  
标签:字符 arr int 数组 printf 指针

指针与数组

数组名是一个指向数组中第一个元素的常量指针.

数字数组

将一个指针指向一个数字数组, 指针中存储了数组中第一个元素的地址.

int arr1[] = {1, 2, 3};
int* p = arr1;
printf("%d", *p);     // 1 "指针表示法"
printf("%d", p[0]);   // 1 "数组表示法"
printf("%d", *(p+1);  // 2

字符数组

将一个指针指向一个字符数组, 指针中存储了数组中第一个元素的地址.

char str1[] = "Hello";
char* p = str1;
printf("%c", *p);    // 'H'
printf("%c", p[0]);  // 'H'
putchar(*(p+1));     // 'e'
printf("%s", p);     // "Hello"

字符数组与数字数组的区别就在于:

  1. 数字数组不需要结束符, 字符数组会自动添加结束符;
  2. 使用printf()函数可以输出一个字符串, 而不能输出一个数字数组.

二维数组

int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
int* p = arr[0];  // p需要指向第一个元素, 因此是arr[0]
// p = arr[1];
printf("%d = %d", *p, arr[0][0]);

标签:字符,arr,int,数组,printf,指针
From: https://www.cnblogs.com/khrushchefox/p/17297104.html

相关文章

  • 6-数组
    1.数组概念:指的是一种容器,可以同来存储同种数据类型的多个值。但是数组容器在存储数据的时候,需要结合隐式转换考虑。比如:​ 定义了一个int类型的数组。那么boolean。double类型的数据是不能存到这个数组中的,​ 但是byte类型,short类型,int类型的数据是可以存到这个数组里面......
  • Flutter Dart数组固定长度分割成二维数组
    将dart数组按照指定的长度分割,返回一个二维数组,实现list的split功能.例如:a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]splitList(a,6):[[0,1,2,3,4,5],[6,7,8,9,10,11],[12,13,14,15,16,17],[18,19]] Dart方法代码:......
  • 153. 寻找旋转排序数组中的最小值
    已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,2,4,5,6,7]在变化后可能得到:若旋转4次,则可以得到[4,5,6,7,0,1,2]若旋转7次,则可以得到[0,1,2,4,5,6,7]注意,数组[a[0],a[1],a[2],...,a[n-1]]旋转一次的结果为数......
  • 用 Go 剑指 Offer 11. 旋转数组的最小数字
    已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,4,4,5,6,7]在变化后可能得到:若旋转4次,则可以得到[4,5,6,7,0,1,4]若旋转7次,则可以得到[0,1,4,4,5,6,7]注意,数组[a[0],a[1],a[2],...,a[n-1]]旋转一次的结果为数......
  • Java数组
    数组数组的定义数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的......
  • 数组学习20230407
    今日学习数组:上节课背点:1.三角图输出:上改条件下改值2.外循环控制行,内循环控制列01变量一个数据数组多个同类数据数组/array相同类型数据的组合数组的声明:1.数据类型[]数组名intarr1=newint[]{元素,元素,元素}2.数组类型数组名[]......
  • 双指针
    前提:双指针算法去重有一个前提,那就是数组已经是有序的状态。若数组并非有序,可以在使用本次算法之前先使用排序算法将数组转换成有序数组。本次算法为原地算法即额外空间复杂度为O(1)。本文将使用整数型数组arr作演示,其中arr的元素为0,0,1,2,2,3,5。算法讲解:首......
  • 题目 1030: [编程入门]二维数组的转置
    题目描述写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。输入格式一个3x3的矩阵输出格式无样例输入复制123456789样例输出复制147258369解题思路:声明两个数组a[3][3],b[3][3],后者存放转置后的元素。先用for循环嵌套输入a数......
  • uniapp修改数组对象属性,视图不刷新问题
    uniapp最大的坑遇到修改数组属性视图不更新的问题 有两种解决方法一:this.$forceUpdate();强制更新,这个确实在H5端更新了,但是微信小程序还是没有更新二:this.$set(),一样不行修改数组后视图依旧不刷新最后用$.elmit()方法在子组件修改父组件传给子组件的值达到父子组件双向......
  • 数组去重
    数组去重,实际开发用得到例:将下面数组去除重复元素(以多种数据类型为例)constarr=[1,2,2,'abc','abc',true,true,false,false,undefined,undefined,NaN,NaN]1.利用Set()+Array.from()Set对象:是值的集合,你可以按照插入的顺序迭代它的元素。Set中的元素只会出现一......