#include <stdio.h>
//void show(char *p[]);
void show(char s[][]);
int main(){
char s[][]={"","abc","xyz"};
char *p[];
//指针数组要循环复制
p[] = s[];
char (*ps)[];
ps = s;
}
#include <stdio.h>
#include <string.h>
#define SIZE 80
#define LMT 3
#define HALT " " /**
* 字符串排序函数函数原型声明
*/
//如果直接传递二维数组,函数里边只能显示数组元素,不能更改元素位置
void str_sort(char str[][SIZE],int num);
//void str_sort(char *str,int num); int main(){
char input[LMT][SIZE];
//指针数组,要分别为每个元素赋值,指向多维数组的指针只需要为指针变量赋值即可
//指针数组初始化的时候要指定数组的大小,指向多维数组的指针只分配指针变量的内存空间即可
char *ps[LMT];
int ct = ;
int k; while(ct<LMT && gets(input[ct]) != NULL && input[ct][] != '\0'){
ps[ct] = input[ct];
ct++;
}
//str_sort(ps,ct);
str_sort(input,ct);
//puts("Here is the res list:");
//for(k=0;k<ct;k++){
// puts(ps[k]);
//}
return ;
} void str_sort(char str[][SIZE], int num){
//char *tmp;
//int top,seek;
//for(top=0;top<num-1;top++){
// for(seek=top+1;seek<num;seek++){
// if(strcmp(str[top], str[seek]) > 0){
// tmp = str[top];
// str[top] = str[seek];
// str[seek] = tmp;
// }
// }
//}
int i;
str[][]='*';
for(i=;i<num;i++){
printf("%s\n",str[i]);
}
}
#include <stdio.h>
#include <string.h>
#define SIZE 80
#define LMT 3
#define HALT " " /**
* 字符串排序函数函数原型声明
*/
void str_sort(char *str[],int num); int main(){
char input[LMT][SIZE];
char *ps[LMT];
int ct = ;
int k; while(ct<LMT && gets(input[ct]) != NULL && input[ct][] != '\0'){
ps[ct] = input[ct];
ct++;
}
str_sort(ps,ct);
puts("Here is the res list:");
for(k=;k<ct;k++){
puts(ps[k]);
}
return ;
} void str_sort(char *str[], int num){
char *tmp;
int top,seek;
for(top=;top<num-;top++){
for(seek=top+;seek<num;seek++){
if(strcmp(str[top], str[seek]) > ){
tmp = str[top];
str[top] = str[seek];
str[seek] = tmp;
}
}
}
}

二维数组作为函数参数

#include <stdio.h>
#include <string.h>
#define LMT 3
#define SIZE 80
void str_sort(char str[][SIZE], int num);
int main(){
char input[LMT][SIZE];
int ct;
while(ct < LMT && gets(input[ct]) != NULL && input[ct][] != '\0'){
ct++;
}
str_sort(input,LMT);
int i;
for(i=;i<LMT;i++){
puts(input[i]);
}
} void str_sort(char str[][SIZE], int num){
int i,j;
char tmp[SIZE];
for(i=;i<num-;i++){
for(j=i+;j<num;j++){
if(strcmp(str[i],str[j]) > ){
strcpy(tmp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],tmp);
}
}
}
}

C语言--指向多维数组的指针和指针数组的更多相关文章

  1. c语言编程-----指向二维数组的指针

    c中如何返回一个指向二维数组的指针 #include <stdio.h> #include <stdlib.h> #define COUNT 3 typedef int (*M ...

  2. c语言中双维数组与指针的那点事儿

    说起c语言的指针,估计对c语言只是一知半解的同志们可能都会很头疼,尤其它跟数组又无耻的联系到一起的时候,就更加淫荡了!!! 怎么说呢,就是有一点规定:(或准则) 数组名可以看成是指向数组头元素的指针, ...

  3. C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

    原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...

  4. C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数

    1. 数组名 C语言中的数组名是一个特殊的存在, 从本质上来讲, 数组名是一个地址, 我们可以打印一个指针的值,和打印一个数组的值来观察出这个本质: int nArray[10] ={ 0 }; in ...

  5. C语言教学--二维数组和指针的理解

    对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...

  6. 通过数组初始化链表的两种方法:指向指针的引用node *&tail和指向指针的指针(二维指针)node **tail

    面试高频题:单链表的逆置操作/链表逆序相关文章 点击打开 void init_node(node *tail,char *init_array) 这样声明函数是不正确的,函数的原意是通过数组初始化链表 ...

  7. C语言复习---二维数组和二级指针的关系:没关系,别瞎想(重点)

    前提:一维数组和一维指针为什么可以替换使用? ] = { , , }; int *p = a; ; i < ; i++) printf("%d ", *(p + i)); 上 ...

  8. C++之指针指向二维数组

    一维指针通经常使用指针表示,其指向的地址是数组第一元素所在的内存地址,例如以下 int ary[4][5]; int(*aryp)[5] = ary; 那么ary[4]相当于int(*aryp).下面 ...

  9. C 与 C++ 中 指向二维数组的指针进行指针运算

    二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有"缝隙".以下面的二维数组 nums 为例: 从概念上理解,nums 的分布像一个矩阵,但在 ...

随机推荐

  1. 简单粗暴的对android so文件加壳,防止静态分析

    转载自http://bbs.pediy.com/showthread.php?t=191649 以前一直对.so文件加载时解密不懂,不了解其工作原理和实现思路.最近翻看各种资料,有了一些思路.看到论坛 ...

  2. Android IPC机制之ContentProvider

    ContentProvider:即内容提供者,用来管理数据,并对外暴露一个uri,外部可以通过uri和数据建立联系并获取或操作数据: 服务端:1.首先创建一个数据库类,并创建一个表:2.创建一个Con ...

  3. AEAI Portlet开发心得

    1 背景概述 Portlet是AEAI Portal组件API,是基于Java的Web组件,由Portlet容器管理,并由容器处理请求,生产动态内容.AEAI Portal中已经预置了许多Portle ...

  4. 简单的 http 服务器

    HttpUtils: package org.windwant.httpserver; import java.io.IOException; import java.net.InetSocketAd ...

  5. C# 和 C++ 数据类型对照表

    又要用C#调用C++写好的api函数,为了方便,将网上的数据类型做个整理,方便以后查找,以后遇到需要的在进行查找 C++ C#             WORD ushort     DWORD ui ...

  6. Oracle索引梳理系列(二)- Oracle索引种类及B树索引

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  7. WCF绑定和行为在普通应用和SilverLight应用一些对比

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 阅读目录 介绍 绑定 普通应用和SilverLight应用区别 本文版权归mephisto和博客园共有, ...

  8. x01.os.5: DOS 功能调用

    DOS 功能调用(INT 21)-------------------------------AH = 0-2E 适用 DOS 1.0 以上版本AH = 2F-57 适用 DOS 2.0 以上版本AH ...

  9. linux创建用户、设置密码、修改用户、删除用户

    创建用户.设置密码.修改用户.删除用户:useradd testuser 创建用户testuserpasswd testuser 给已创建的用户testuser设置密码说明:新创建的用户会在/home ...

  10. Virtualbox配置双网卡

    hadoop内部的虚拟机群,使用Host-Only 因为我之前一直是把三台虚机配置成桥接网络,可以同时上网又可以互通,但有一段时间,网络一直不通畅,造成hadoop核心进程一直关闭. 最后为了稳定起见 ...