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] ...
随机推荐
- BootStrap--panel面板
1 <div class="panel panel-default"> <div class="panel-body"> 这是一个基本的 ...
- iOS开发——根据数组中的字典中的某一元素排序
数组中的元素是字典,字典中的某一个元素,比如说姓名,现在需要按照姓名的首字母来排序,怎么搞? 做法很简单,在字典中加一个元素,保存姓名的首字母,然后用下面的方法排序. - (void)sortWifi ...
- ip代理池的爬虫编写、验证和维护
打算法比赛有点累,比赛之余写点小项目来提升一下工程能力.顺便陶冶一下情操 本来是想买一个服务器写个博客或者是弄个什么FQ的东西 最后刷知乎看到有一个很有意思的项目,就是维护一个「高可用低延迟的高匿IP ...
- 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees
[题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...
- PatentTips - Virtualizing performance counters
BACKGROUND Generally, the concept of virtualization in information processing systems allows multipl ...
- Oracle拾遗
这次学习Oracle视频.还是学到了不少东西的. 首先,这是一次系统的学习.对自己的知识体系是一次查漏补缺,曾经仅仅是简单的会用,如今看到出的问题,非常easy就能够想到是哪一部分出了问题.尤其是如今 ...
- win32下实现透明窗体
最開始写透明窗体的代码,在百度了之后,找到了SetLayeredWindowAttributes()这一个函数,可是因为网上案列的缺少,使得非常多人无法非常好的使用这一个方法,我花了几天的时间写了一个 ...
- vim 脚本之快速打印log
" zsl_log.vim " Version: 1.0 if exists("g:zsl_loaded_log") || &cp || v:versi ...
- 线性同余同余方程组解法(excrt)
[问题描述] 求关于 x 的同余方程组 x%a 1 =b 1 a1=b1 x%a 2 =b 2 a2=b2 x%a 3 =b 3 a3=b3 x%a 4 =b 4 a4=b4 的大于等于 0 ...
- Codeforces 344C Rational Resistance
Description Mad scientist Mike is building a time machine in his spare time. To finish the work, he ...