个人理解的int数组和char数组

Posted 稳住能赢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人理解的int数组和char数组相关的知识,希望对你有一定的参考价值。

char数组中不论是一维还是二维的,在程序执行时每一块的分离依据都是以提供的起始地址到‘\0‘为一个处理的字符串。所以关于char[]的函数都是只提供相应起始地址作为形参就可以。

char[]互相交换内容时不是用的=号,而是使用strcpy(a,b),其中a为“被赋值的“char[]的起始地址,b为“要赋的值“的char[]的起始地址。要修改其中的某个字符则可以使用=号

另外例如char* a="abcd"和char b[5]="abcd";区别在于b可以任意修改字符数组中的某个字符,而a在初始化之后不能修改.

但是a可以改变自身所指向的地址,b为数组名为"指针常量"不能修改其指向地址.

二维的int数组int a[3][10],要将其中3个一维数组中的某个作为形参输入到函数中进行处理。例如:

#include<stdio.h>
void and1(int b[])
{
b[1] = b[1] + 1;
}
int main(void)
{
int a[3][2] = {1,2,3,4,5,6};
and1(a[2]);
printf("%d",a[2][1]);
return 0;
}

 

这个程序的目的就是要将二维int数组中的第三个数组的第二个元素加一。为什么这么写就可以了,是因为int数组是根据4个字节为一个处理的数值

形参b[]只是想要提供一个你要处理的一维数组的起始地址而已。

以上是关于个人理解的int数组和char数组的主要内容,如果未能解决你的问题,请参考以下文章

关于JAVA面向对象基础整理以及个人的理解(适合初学者阅读)

树状数组求逆序数及变形(个人理解)

堆排序个人心得-图解+代码

HashMap底层及使用个人理解

从 int 数组转换为 char 数组

1-n的随机删除3个数字,找出剩下的数字,个人理解是个双数组去重