用2种内存模型来排序字符串的的顺序,一种是交换内存地址,第二种是交换内存里面的值;

#define _CRT_SECURE_NO_WARNINGS
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
void  MyPrintf(char **);
void MYSORT(char **, int);
void  SORTBUF(char **);
void main()
{
	int i = 0;
	int j = 0;
	char *buf;
	char **myarray;
	myarray = (char **)malloc(sizeof(char *)* 10);
	if (myarray == NULL)
	{
		return;
	}
	for (i = 0; i < 10; i++)
	{
		myarray[i] = (char *)malloc(10 * sizeof(char));
		if (myarray[i] == NULL)
		{
			printf("export err myarray[i]");
			return;
		}
		sprintf(myarray[i],"%d%d%d",i,i,i);
	}

	MyPrintf(myarray);
	//不调用函数排序
	/*
	for (i = 0; i < 10; i++)
	{
		for (j = i + 1; j < 10; j++)
		{
			if (strcmp(myarray[i], myarray[j]) < 0)
			{

				buf = myarray[i];
				myarray[i] = myarray[j];
				myarray[j] = buf;
			}
		}
	}
	*/

	//互相交换内容//后面的10.没有传进去;
	SORTBUF(myarray);

	//MYSORT(myarray, 10);//互相换地址

	printf("\n\n\n");
	MyPrintf(myarray);
	system("pause");
}

//打印
void  MyPrintf(char **p)
{
	char **sortp = p;
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%s     ", *(sortp + i));
	}

}

//互相换地址;
void MYSORT(char **p, int n)
{

	int i = 0;
	int j = 0;
	char **temp = NULL;
	for (i = 0; i < n; i++)
	{
		for (j = i + 1; j < n; j++)
		{
			if (strcmp(p[i], p[j]) < 0)
			{
				temp = p[i];
				p[i] = p[j];
				p[j] = temp;
			}
		}
	}
}      //互相换地址

//互相交换地址里面的值 ,
void  SORTBUF(char **p)
{

	int i = 0, j = 0;
	 char buf[30];
	 for (i = 0; i < 10; i++)
	 {
		 for (j = i + 1; j < 10; j++)
		 {
			 if (strcmp(p[i], p[j]) < 0)
			 {
				 strcpy(buf, p[i]);
				 strcpy(p[i], p[j]);
				 strcpy(p[j], buf);
			 }
		 }
	 }
}

用2种内存模型来排序字符串的的顺序,一种是交换内存地址,第二种是交换内存里面的值;,布布扣,bubuko.com

时间: 2024-10-13 00:48:53

用2种内存模型来排序字符串的的顺序,一种是交换内存地址,第二种是交换内存里面的值;的相关文章

java内存模型-重排序

数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性.数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之后,再读这个位置. 写后写 a = 1;a = 2; 写一个变量之后,再写这个变量. 读后写 a = b;b = 1; 读一个变量之后,再写这个变量. 上面三种情况,只要重排序两个操作的执行顺序,程序的执行结果将会被改变. 前面提到过,编译器和处理器可能会对操作做重排序.编译器和处理器在重排序时,会

DirectX11 With Windows SDK--29 计算着色器:内存模型、线程同步;实现顺序无关透明度(OIT)

前言 由于透明混合在不同的绘制顺序下结果会不同,这就要求绘制前要对物体进行排序,然后再从后往前渲染.但即便是仅渲染一个物体(如上一章的水波),也会出现透明绘制顺序不对的情况,普通的绘制是无法避免的.如果要追求正确的效果,就需要对每个像素位置对所有的像素按深度值进行排序.本章将介绍一种仅DirectX11及更高版本才能实现的顺序无关的透明度(Order-Independent Transparency,OIT),虽然它是用像素着色器来实现的,但是用到了计算着色器里面的一些相关知识. 这一章综合性很

C++二级指针第二种内存模型(二维数组)

C++二级指针第二种内存模型(二维数组) 二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”. 定义 类型说明符 数组名[常量表达式][常量表达式] 例如: float a[3][4],b[5][10]; 二维数组元素地址 #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; int a[3][4]={ {1,2,3

java内存模型一

Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立性而使用的多线程技术支持也是具有开拓性的一面,有时候在开发Java同步和线程安全要求很严格的程序时,往往容易混淆的一个概念就是内存模型.究竟什么是内存模型?内存模型描述了程序中各个变量(实例域.静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存中取出变量这样的底层细节,对象最终是存储在内存里面的,这点没有错,但是编译器.运行库.处理器或者系统

(转)JAVA内存模型

(原本准备把内存模型单独放到某一篇文章的某个章节里面讲解,后来查阅了国外很多文档才发现其实JVM内存模型的内容还蛮多的,所以直接作为一个章节的基础知识来讲解,可能该章节概念的东西比较多.一个开发Java的开发者,一旦了解了JVM内存模型就能够更加深入地了解该语言的语言特性,可能这个章节更多的是概念,没有太多代码实例,所以希望读者谅解,有什么笔误来Email告知:[email protected],本文尽量涵盖所有Java语言可以碰到的和内存相关的内容,同样也会提到一些和内存相关的计算机语言的一些

java内存模型及分块

转自:http://www.cnblogs.com/BangQ/p/4045954.html 1.JMM简介 2.堆和栈 3.本机内存 4.防止内存泄漏 1.JMM简介 i.内存模型概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立性而使用的多线程技术支持也是具有开拓性的一面,有时候在开发Java同步和线程安全要求很严格的程序时,往往容易混淆的一个概念就是内存模型.究竟什么是内存模型?内存模型描述了程序中各个变

JVM内存模型 三

本文章节: 1.JMM简介 2.堆和栈 3.本机内存 4.防止内存泄漏 1.JMM简介 i.内存模型概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立性而使用的多线程技术支持也是具有开拓性的一面,有时候在开发Java同步和线程安全要求很严格的程序时,往往容易混淆的一个概念就是内存模型.究竟什么是内存模型?内存模型描述了程序中各个变量(实例域.静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和

精讲Redis内存模型

前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串.哈希.列表.集合.有序集合),丰富的类型是Redis相对于Memcached等的一大优势.在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如: 1.估算Redis内存使用量.目前为止,内存的使用成本仍然相对较高,使用内存不能无所顾

【转】深入学习Redis(1):Redis内存模型

前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串.哈希.列表.集合.有序集合),丰富的类型是Redis相对于Memcached等的一大优势.在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如: 1.估算Redis内存使用量.目前为止,内存的使用成本仍然相对较高,使用内存不能无所顾