复习一下数组和指针
来源:互联网 发布:日本人看中国知乎 编辑:程序博客网 时间:2024/05/16 08:59
由于这次复习是由上一篇blog写的main函数的输入参数引发的,所以这篇文章就从那里开始。
int main(int argc,char *argv[]) = int main(int argc,char **argv)
char *argv[ ]: 字符串数组,本质上是一个指针数组,
指针数组的意思是这是一个数组,数组的每一个元素都是一个指针(存放的都是一个地址),这个指针指向的元素是什么类型的就在最前面写上对应的类型(例如这里是char,表示的就是argv这个数组的每一个元素指针指向的都是一个字符串)
由于字符串经常用它的首地址表示,所以指针数组经常用来存放多个字符串(的首地址)。故又称char* xxx[]为字符串数组。
例如:char *a[5]={"red","yellow","blue","white","black"};
参考文章:
http://bbs.csdn.net/topics/320028180/
说到字符串数组,我们就要说到字符串,字符串在c语言中主要有两种存储方式:
1、用末尾是'\0'的字符数组来存储
char a[6]={'h','e','l','l','o','\0'};
这里我们就要说一下数组
定义不多说,都知道是同种数据类型元素的一个序列。
这里说几个当时老是混淆的地方。
数组的名称是一个地址常量,例如上面的例子,a中存放的是:这个数组首元素的地址。
但是有一个问题虽说a是一个地址常量但是&a依然是有意义的,他的结果依然还是首元素的地址。但是a和&a是有区别的。
区别就在于a+1和&a+1,前者表示a的第二个元素的地址,而后者表示跨出这个数组a的下一个地址。
详见:
http://bbs.csdn.net/topics/370005099
http://blog.csdn.net/wanwenweifly4/article/details/6424058
http://blog.csdn.net/erica_ou/article/details/52781176
关于其他字符串、字符串数组的一些知识:
https://www.cnblogs.com/bossren/p/6406910.html
2、用指针指向这个字符串
我们也可用一个指针指向一个字符串
例如:char *p = "abc"
p中就存放了这个字符串的首元素的地址。然而这个字符串常量是被存放在常量区的。
关于程序的存储方式:
字符串常量https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%B8%B8%E9%87%8F/4706938?fr=aladdin
字符串常量存放在哪个区中http://blog.csdn.net/daiyutage/article/details/8605580
我估计之所以数组指针采用这样的方式int *a[5],
int*表示的就是:*表示这是一个指针型的变量,int表示这个指针指向的是一个整型变量(我觉得本质上是告诉指针指向的这个东西的存储空间是多大,以防止指针+1时不知道该前进几个字节,这里指针+1需要前进4个字节,因为一般很多编译器int都是32位的)
a:变量名(数组名)
[5]数组元素的个数
忽然想到一个问题:指针数组一个元素有多大?
我觉得这跟内存的大小有关,内存越大,就需要越长的地址位数来进行寻址。
- 复习一下数组和指针
- 复习一下数组和指针(2)
- 复习一下C指针
- 复习一下指针
- 理解一下指针数组和二维数组
- C语言复习 -- 指针数组和数组指针
- 【C语言复习(十五)】数组指针和指针数组
- 【C语言笔试复习】指针数组和数组指针
- C++复习 04 数组和指针
- C语言复习 指针和数组
- 指针和数组复习(1)
- C++指针详解(复习一下)
- 【C语言复习(十三)】数组和指针
- 【C语言复习(十七)】多维数组和多维指针
- 【C语言复习(十八)】数组参数和指针参数
- 面试复习三、指针和数组(一)
- 指针与数组复习笔记
- 二维数组的指针复习
- 树状数组+二维树状数组的再学习
- opencv_createsamples、opencv_traincascade的使用
- hdu Digital Roots
- 线段树小结
- zTree
- 复习一下数组和指针
- 摩爾定律將要沒落?
- Git对某个文件的回退
- 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
- 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
- 六、ELK6.0日志从收集到处理完整版教程
- Hoeffding不等式
- 五周第四次课 2017.11.16 管道符和作业控制、shell变量、环境变量配置文件
- 试卷题目验证1