C/C++(指针数组)
指针数组
指针数组的本质是数组,数组指针的本质是指针
一个数组中的各个元素都是字符指针,即为字符指针数组,或者指针数组。
int arr[] = {1,2,23,45,6};//整形数组
char cArr[] = {'a','b','v','d'};//字符数组
char a,b,c,d;
char * cpArr[] = {&a,&b,&c,&d};
//<=> {char*,char*,char*,char*}字符数组指针
char *pa ="China",*pb = "America",*pc = "Canada",*pd = "Japan";
char * cppArr[] = {pa,pb,pc,pd};//放进去的是地址
//<=>
for(int i = 0;i < 4;i++) {
    printf("%p %s\n",cppArr[i],cppArr[i]);
}
char * pArr[] = {"China","Amercia","Canada","Japan"};//指针数组存放的事字符串的地址
for(int i = 0;i < 4;i++) {
    printf("%p %s\n",cppArr[i],cppArr[i]);
}//和上述输入的结果是一样的
/*
00404044 China
0040404A America
00404052 Canada
00404059 Japan
00404044 China
0040404A America
00404052 Canada
00404059 Japan
*/
排序:
char * pArr[] = {"China","America","Canada","Japan"};
for(int i = 0;i < 4;i++) {
    printf("%p %s\n",pArr[i],pArr[i]);
}
int n = sizeof(pArr)/sizeof(*pArr);//sizeof(pArr);总的pArr的大小,*pArr是数组首元素的大小。
char *pt;
for(int i = 0;i < n-1;i++) {
    for(int j = i+1;j < n;j++) {
        if(strcmp(pArr[i],pArr[j]) > 0) {
            pt = pArr[i];
            pArr[i] = pArr[j];
            pArr[j] = pt;
        }
    }
}
printf("\n+++++++++++++++++++++++++++++++\n");
for(int i = 0;i < 4;i++) {
    printf("%p %s\n",pArr[i],pArr[i]);
}
/*
00404044 China
0040404A America
00404052 Canada
00404059 Japan
+++++++++++++++++++++++++++++++
0040404A America
00404052 Canada
00404044 China
00404059 Japan
上述的字符串是放在data 的rodata段中,无法直接操作字符串,利用字符指针数组进行排序,将其的地址排序,实现数据的排序。相当于在图书馆里实现图书的排序,书库的书不动只把书的序号排序
*/
启动进程时系统通过命令行传递给进程的参数,即main的参数。
int main(int argc,char * argv[]) {
//argc arg: argument(参数),c:count(个数)--参数个数
//*argv *arg:指针数组,v vector(向量)---指针数组向量
}
"0"
int   0; //0
float 0.0;//0.0
* NULL      //标识未初始化的指针,代表内存的零地址
char '\0';//用于表示字符串结束的标志
//假0
char  '0';//'0'
"0" '0'+'\0';//
												
											C/C++(指针数组)的更多相关文章
- C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用
		
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...
 - C++基础——函数指针 函数指针数组
		
==================================声明================================== 本文版权归作者所有. 本文原创,转载必须在正文中显要地注明 ...
 - C++中指针数组的分配与释放
		
C++中可用new和delete关键字分配和释放内存,但是如果遇到指针数组(或指向指针的指针),分配和释放必须慎重,不然容易造成内存泄漏. 下面用一段代码给出如何使用指向指针的指针来分配和释放内存: ...
 - typedef 函数指针 数组 std::function
		
1.整型指针 typedef int* PINT;或typedef int *PINT; 2.结构体 typedef struct { double data;}DATA, *PDATA; //D ...
 - 指针数组  null与空字符串
		
指针数组常适用于指向若干字符串,这样使字符串处理更加灵活方便. 在c++中,null表示:对象为空,它是对指针而言的.而""表示:值为空,它是对字符串而言的.
 - C语言--指向多维数组的指针和指针数组
		
#include <stdio.h> //void show(char *p[]); ]); int main(){ ][]={","abc","x ...
 - 【C语言入门教程】4.8 指针数组
		
指针数组是一种特殊的数组,这类数组存放的全部是同一数据类型的内存地址.指针数组的定义形式为: 数据类型 *数组名[长度]; 例如: const char *c[4] = { "China&q ...
 - 指针数组 vs 数组指针
		
指针数组,故名思义,就是指针的数组,数组的元素是指针: 数组指针,同样,就是直想数组的指针. 简单举例说明: int *p[2]; 首先声明了一个数组,数组的元素是in ...
 - C语言->实验室->指针数组
		
一 分析 讨论指针数组要从三个层面来考虑: 1)指针数组本身是什么 2)指针数组作为参数时的表现 3)指针数组作为返回值时的表现 二 指针数组是什么 1)指针数组--指针的集合 数组是若干元素的集合, ...
 - c/c++ 函数指针 指针函数 数组的引用 指针数组 数组指针
		
1.指针数组数组指针 引用数组 数组的引用 int *a[10] 指针数组 每一个元素都是一个指针 Int (*a)[10] 数组指针 P指向一个含有10个元素的数组 Int (&a)[10] ...
 
随机推荐
- Ubuntu18.06 Mate桌面环境下VirtuslBox打开虚拟机“全局菜单”异常退出解决办法
			
在安装完Ubuntu18.06 Mate桌面环境后在VirtuslBox里打开虚拟机会出现“全局菜单”异常退出问题. 产生上面问题的原因是你的虚拟机可能在 显示= >屏幕= >硬件加速里勾 ...
 - js实现观察者模式风格替换
			
如下图,我们看到两种风格:在选择男士时,页面颜色为黑色:在选择女士时,页面颜色为粉红色. 主要可以分为两类: 下拉框 ---> 被观察者 div ---> 观察者 面向过程实现风格替换: ...
 - 20180929 北京大学 人工智能实践:Tensorflow笔记07
			
(完)
 - Maven学习总结(21)——Maven常用的几个核心概念
			
在使用Maven的过程中,经常会遇到几个核心的概念,准确的理解这些概念将会有莫大的帮助. 1. POM(Project Object Model)项目对象模型 POM 与 Java 代码实现了解耦,当 ...
 - 赋值、复制构造函数和构造函数 & 异常安全的赋值
			
异常安全的赋值 需要注意,复制赋值和复制构造,相兼容. 赋值时候,要带上自检查.
 - 利用photoshop的动作功能实现图片批处理操作
			
首先,通过"窗体菜单"点击"动作".启动动作栏. 然后.通过动作栏的菜单,新建动作. 接着,完毕一个标准操作,包含打开图像,图像处理或者格式转换,另存为,等. ...
 - JAVA类库LinkList的基本实现
			
写完调试了好久,边界不优点理,具体的请看JDK类库,下面仅仅是基本实现: import java.util.Iterator; /** * 类名:MyLinkedList 说明:LinkedList的 ...
 - Mysql基础部分,针对以后python使用
			
#redis 非关系型数据库#mysql 关系型数据库 表与表之间有数据关系 Oracle Mysql SqlServer DB2#多张表组合在一起就是数据库#冗余 存储两倍数据 可以使系统速度更快 ...
 - 113.dynamic_cast 虚函数  通过子类初始化的父类转化为子类类型
			
#include <iostream> using namespace std; //子类同名函数覆盖父类 //父类指针存储子类地址,在有虚函数情况会调用子类方法,否则会调用父类方法 cl ...
 - Postfix邮件系统安装配置视频
			
Postfix邮件系统安装配置视频(文字资料详见linux企业应用案例精解),全部视频分为四个部分,详情如下: http://115.com/file/be9j4dsj#postfix-1.rar h ...