
正文
c语言中利用指针合并数组,利用指针给数组求和
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中数组的合并
交替合并到C中,可以写作 int i;for(i = 0; i l; i ++){ C[i*2] = A[i]; C[i*2+1] = B[i];}不管是何种方式,合并的本质就是,把A和B的每个元素,赋值到目标数组的对应位置上即可。
数组类型 如果 是 4字节 int 型,想把它变成单字节流 用于发送。大端/小端 自己 调整 一下 下面 的 下标就可以了。
for循环是在两个数组中分别比较元素的大小,指针c指向两个数组中较小的那个元素。依次朝后比较。当其中一个数组的元素全部都被遍历完,则指针c 就直接依次指向另外一个数组所有元素,将元素都添加到新数组中。
strcat是字符串拼接函数,不是数组拼接函数,所以不能用于拼接两个数组。可以用以下方法:用数组的话用memcpy。用循环把所有数组元素重新拷贝。直接当字符串输入。
直接将数组的指针强制转换为占两个字节的short类型即可。short* (Data[0][0]) 可以把地址变为两个字节的地址,数据也会是两个字节合并后的数据内容。
不知道楼主是要普通的合并然后排序呢还是高级算法里的归并排序。后者的话建议看看百度百科http://baike.baidu.com/view/9079htm 前者。
相关问答
Q1: C语言指针两个和数组
(1)指针数组:它实际上是一个数组,数组的每个元素存放的是一个指针类型的元素。
数组指针,数组名就是一个指向数组起始地址的指针,数组下标是萦引,比如num[0],他就相当于num+0;num这个指针没移动,于是取的是数组的第一个。
先考虑LZ最后的表述。注意C语言中对象可以理解为被占据的连续的内存。值是对象的内容,包含类型和实际的存储表示(对整数类型就是数值,对指针类型一般实现为平坦地址空间元素的整数)。
C语言中,数组和指针是两类不同的类型——前者的定义需要明确被指向的类型,后者的定义需要明确元素类型和数组的长度。这样定义的原因是两者本身的语义不同。
a[i]是有物理地址的,是占内存单元的。但如果a是二维数组,则a[i]是代表一维数组名。它只是一个地址(如同一维数组名只是一个指针常量一样。) a,a+i,a[i],*(a+i),*(a+i)+j,a[i]+j都是地址。
Q2: 求求高手指教,c语言中,用指针怎样将2个数组联接起来呢?
1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
2、语法有错误,可以按照如下方法实现用指针把两个字符串连接起来:第一步,创建一个新项目和.c文件,见下图,转到下面的步骤。第二步,执行完上面的操作之后,定义变量类型,见下图的代码,转到下面的步骤。
3、怎么合并,是通过计算加减法还是排序插入 。
Q3: c语言指针和数组联合,如何解决
数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。
程序最最主要的问题在于:你在connect函数中,返回了一个局部变量的地址,即局部变量c。当你返回这个指针(即局部变量c),你是想返回c这个数组的首地址是吧,确实是这样,返回了这个地址值。
用字符指针实现。可以不定义字符数组,而定义一个字符指针。用字符指针指向字符串中的字符。
举个实例你就明白了:假如一个数组a[3][7],即一个4行8列的矩阵,每行8(0-7)个,一共4(0-3)行。
Q4: C语言用指针求数组和
j只是一个指针,你赋初值为NULL(地址为0),j=*j+*p是对j进行了读写。可是,地址为0的NULL不支持读写,所以会出错。
includeiostream //若为0编译器,改为#includeiostream.h using namespace std; //0,将此句删除。
指针指向数组元素时,可以对指针进行以下运算:加一个整数(用+或+=),减一个整数(用-或-=),自加运算,如p++,++p\自减运算,如p--,--p 两个指针相减,只有p1和p2都指向同一数组中的元素时才有意义)。
关于c语言中利用指针合并数组和利用指针给数组求和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







