C语言--指向多维数组的指针和指针数组
#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语言--指向多维数组的指针和指针数组的更多相关文章
- c语言编程-----指向二维数组的指针
c中如何返回一个指向二维数组的指针 #include <stdio.h> #include <stdlib.h> #define COUNT 3 typedef int (*M ...
- c语言中双维数组与指针的那点事儿
说起c语言的指针,估计对c语言只是一知半解的同志们可能都会很头疼,尤其它跟数组又无耻的联系到一起的时候,就更加淫荡了!!! 怎么说呢,就是有一点规定:(或准则) 数组名可以看成是指向数组头元素的指针, ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数
1. 数组名 C语言中的数组名是一个特殊的存在, 从本质上来讲, 数组名是一个地址, 我们可以打印一个指针的值,和打印一个数组的值来观察出这个本质: int nArray[10] ={ 0 }; in ...
- C语言教学--二维数组和指针的理解
对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...
- 通过数组初始化链表的两种方法:指向指针的引用node *&tail和指向指针的指针(二维指针)node **tail
面试高频题:单链表的逆置操作/链表逆序相关文章 点击打开 void init_node(node *tail,char *init_array) 这样声明函数是不正确的,函数的原意是通过数组初始化链表 ...
- C语言复习---二维数组和二级指针的关系:没关系,别瞎想(重点)
前提:一维数组和一维指针为什么可以替换使用? ] = { , , }; int *p = a; ; i < ; i++) printf("%d ", *(p + i)); 上 ...
- C++之指针指向二维数组
一维指针通经常使用指针表示,其指向的地址是数组第一元素所在的内存地址,例如以下 int ary[4][5]; int(*aryp)[5] = ary; 那么ary[4]相当于int(*aryp).下面 ...
- C 与 C++ 中 指向二维数组的指针进行指针运算
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有"缝隙".以下面的二维数组 nums 为例: 从概念上理解,nums 的分布像一个矩阵,但在 ...
随机推荐
- Eclipse的自动排版设置(format)
Java排版: 主要是在文件保存时自动触发排版等规则,省掉反复操作快捷键 Ctrl+Shift+F 的步骤.在 eclipse 中选择 Window-> Preferences- ...
- Android 手机卫士--签名文件说明&包名说明
在<Android 手机卫士--打包生成apk维护到服务器>一文中,实现了新版本的apk到服务器,当打开客户端apk的时候,发现有新版本,提示更新.还实现了利用xutils工具实现了从服务 ...
- C语言笔记
.c是C语言源文件,在编写代码的时候创建 .o是目标文件,在编译成功的时候产生 .obj .out是可执行文件,在链接成功的时候产生 工具:clang编译器(Xcode3 gcc Xcode4 LL ...
- iOS开发和localStorage/sessionStorage
一.前言 在近期的工作中,有前端同学告诉我要清除localStorage,我当时对localStorage完全没有概念,所以就在w3c看了一下相关的内容,下面简单的介绍一下.算是对iOS开发者普及H5 ...
- 用户故事地图(User Story Mapping)之初体验
北京这几日的天儿真是好的出奇,白天风和日丽,晚上繁星漫天:在这样一个周六的下午,小编参加了一次北京敏捷社区(微信号:Agile1001)组织的活动:<用户故事地图User Story Mappi ...
- .net 读写记事本文件
这是读取文件的代码 StreamReader myreader = File.OpenText(_filepath);//读取记事本文件 string s = ""; s = my ...
- 验证码做得不错,有.net 版本 https://captcha.com/
https://captcha.com/ https://captcha.com/demos/features/captcha-demo.aspx
- 关于input全选反选恶心的异常情况
上一篇讲到:第一次点击全选按钮input显示对勾,第二次则不显示,需要用prop来添加checked属性. 但是用prop会出现一个问题,对勾显示,而checked属性不会被添加(比如:$(" ...
- drop和delete的区别是什么
当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.
- MySql技巧个人笔记
1.数据null时sum的用法 mysql数据库SUM(A+B)不一定等于SUM(A)+SUM(B),当A或B为NULL时,SUM(A+B)=NULL. 2.or改为in 同一字段,将or改写为in( ...