深入理解c语言指针-第四章
来源:互联网 发布:电子教室软件是什么 编辑:程序博客网 时间:2024/06/03 19:36
向量(一维数组)和矩阵(二维数组)
数组的定义:数组是同一类型的数据的集合
重点(同一类型),比喻int,char,long等,所以在内存中每一项占的空间的大小是相同的,所以在c语言中求解数组的长度便是 : sizeof(数组名<代表数组的起始地址>)/sizeof(数组的第一项),无论是不是字符串数组(即使字符串第一项只有两个字母,第二项有三个字母…)
数组和指针:
数组名是一个指针常量,指向数组的首地址
int arr[3] = {1,2,3}; printf("%d\n",arr[2]); int *p = arr; printf("%d\n",*(p+2));
vector[i]生成的代码和(vector+i)生成的不一样,vector[i]表示法生成的机器码从位置vector开始,移动i个位置,取出内容。而(vector+i)表示法生成的机器码则是从vector开始,在地址上增加i,然后取出这个地址中的内容。尽管结果是一样的,生成的机器码却不一样,对于大部分人来说,这种差别几乎无足轻重。
改变数组的长度?
一般传递数组,也需要传递数组的长度,因为你只传递了一个首地址
char *P;//在定义的时候*p表示是一个指针变量,指向一个变量的地址
char **pp;//两个*表示是一个指针变量,指向一个指针
char *parr[5];//因为数组就是一个常量指针,所以这样的定义就是同上面char **pp
char *P;//在定义的时候*p表示是一个指针变量,指向一个变量的地址 char **pp;//两个*表示是一个指针变量,指向一个指针 char *parr[5];//因为数组就是一个常量指针,所以这样的定义就是同上面char **pp char *tt[]= {"aaaa","bbbb","cccc"}; char **dd = tt; printf("数组的长度%d\n",sizeof(tt)); int len = sizeof(tt); int i = 0; for(;i<len;i++){ printf("%s , %d , %d , %d , %s\n",*(tt+i),(tt+i),(*tt+i),(dd+i),(*(dd+i))); }
阅读全文
0 0
- 深入理解c语言指针-第四章
- 深入理解c语言指针-第二章
- 深入理解c语言指针-第三章
- 深入理解c语言指针-第五章
- 深入理解c语言指针-第六章
- 深入理解 C 指针阅读笔记 -- 第四章
- 深入理解C语言指针
- 深入理解C语言指针
- 深入理解C语言指针
- 深入理解C语言指针
- 深入理解C语言指针
- C语言指针深入理解
- 深入理解C语言指针
- <深入理解C指针>学习笔记和总结 第四章 指针和数组
- 读《深入理解C语言指针》第三章
- 深入理解C语言指针的奥秘- -- -
- 深入理解C语言指针的奥秘
- 深入理解C语言指针的奥秘
- iOS开发初级错误 Expression is not assignable
- jdk8.0 内存划分
- 机器学习的动机与应用
- 进程 线程 多进程 多线程之间的差异以及优缺点
- 机器学习 学习资源
- 深入理解c语言指针-第四章
- keil USB communication error
- Mac上解决Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'
- HTML5-常用标签
- [ IE浏览器兼容问题 ] Web Uploader 在IE、FireFox下点击上传没反应
- PHP入门——对象
- 在一个千万级的数据库查寻中,如何提高查询效率?
- jquery获取当前页面的URL信息
- Mongo DB乐观锁之version在spring data中应用