23深入理解C指针之---数组的基础
数组是c语言内置的数据结构,数组有一维数组、二维数组和多维数组。使用数组传递数组时,必须传入数组的大小。
一、数组的特征:阐明数组的特点
1、数组要素:
1)、数组类型:数组中存储的数据的类型;
2)、数组名称:数组名称只要符号表达式命名规则即可;
3)、数组大小:数组中数据的个数,数值写到[]中即可,若数组直接初始化也可以不写大小;
4)、数组标识:[],表达式后接上[]表明前面的表达式是数组的名称;
2、数组特征:
1)、数组的大小是固定的;
2)、数组名可以表示数组中第一个元素的地址;
3)、数组名也暗中包含了数组大大小,常常通过sizeof(arrName)/sizeof(arrType)获取数组中元素的个数;
#include <stdio.h> int main(int argc, char **argv)
{
int arrInt[] = {, , , , ,};
int size = sizeof(arrInt) / sizeof(int);
for(int i = ; i < size; i++){
printf("arrInt[%d]: %d\t", i, arrInt[i]);
} return ;
}
4)、可以通过数组索引随机访问数据元素,数组的索引从0开始,到size-1;
#include <stdio.h> int main(int argc, char **argv)
{
int arrInt[] = {, , , , ,};
int size = sizeof(arrInt) / sizeof(int);
for(int i = ; i <= size - ; i++){
printf("arrInt[%d]: %d\t", i, arrInt[i]);
} return ;
}
5)、可以用数组名表示数组的地址;
#include <stdio.h> int main(int argc, char **argv)
{
int arrInt[] = {, , , , ,};
int size = sizeof(arrInt) / sizeof(int); printf("The arrInt address: %p and arrInt[0] address: %p\n", &arrInt, &arrInt[]); for(int i = ; i <= size - ; i++){
printf("arrInt[%d]: %d and address: %p\n", i, arrInt[i], &arrInt[i]);
} return ;
}
6)、数组可以有多维的,可以通过[]的个数确定数组的维数,第一维数字可以省略,其他的不能;
7)、一维数组可以表示一个向量;
8)、二维数组可以表示矩阵,通过行列来表示数据;
9)、数组中的元素会存储到连续的内存单元中,可以通过索引(下标)实现随机访问;
10)、二维数组中可以存在每行元素不同的不规则数组;
23深入理解C指针之---数组的基础的更多相关文章
- 35深入理解C指针之---结构体基础
一.结构体基础 1.定义:结构体大大加强了C的数据聚合能力,可以使得不同类型的数据进行结合 2.特征: 1).结构体可以使得不同类型的数据进行结合 2).结构体可以使用内置的数据类型,包括指针 3). ...
- 深入理解C语言中的指针与数组之指针篇
转载于http://blog.csdn.net/hinyunsin/article/details/6662851 前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...
- 深入理解C语言中的指针与数组之指针篇(转载)
前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情 ...
- 深入理解C指针之四:指针和数组
原文:深入理解C指针之四:指针和数组 数组是C内建的基本数据结构,数组表示法和指针表示法紧密关联.一种常见的错误认识是数组和指针完全可以互换,尽管数组名字有时可以当做指针来用,但数组的名字不是指针.数 ...
- 24深入理解C指针之---指针和数组
一.指针和数组 #include <stdio.h> int main(int argc, char **argv) { ] = {, , , , ,}; int *ptrVector = ...
- 浅谈C中的指针和数组(五)
前面写了一些C指针和数组的一些知识,但是还有一些很重要的知识没有交代,这里做一个补充. 首先看一下,普通变量(指针也是变量)和数组名查看地址的方式是不同的. 查看数组变量的地址,不需要使用 & ...
- 《深入理解C指针》
<深入理解C指针> 基本信息 原书名:Understanding and using C pointers 作者: (美)Richard Reese 译者: 陈晓亮 丛书名: 图灵程序设计 ...
- 33深入理解C指针之---通过字符串传递数据
一.传递字符串:在函数的参数列表中,将参数声明为char指针即可实现通过字符串传递参数 1.特征: 1).字符串以char指针的形式传递,一般是const指针传递: 2).使用字符数组声明字符串,调用 ...
- 10深入理解C指针之---指针运算和比较
该系列文章源于<深入理解C指针>的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教. 指针运算有很多种,主要有指针的声明*.指针的解引*.指针指向(*).或->.指针 ...
随机推荐
- 解决xcode iOS真机调试正常,模拟器失败问题
今天早上遇到xcode的真机可以调试,但是模拟器却爆出一大堆错,提示错误是没有找到引用的代码文件,真机和模拟器的配置都是一样的, 准确来说,应该是除了指令以外,其他都死一样的配置,所以大概是指令配置上 ...
- dSYM文件
来到新公司后,前段时间就一直在忙,前不久 项目 终于成功发布上线了,最近就在给项目做优化,并排除一些线上软件的 bug,因为项目中使用了友盟统计,所以在友盟给出的错误信息统计中能比较方便的找出客户端异 ...
- 一句话懂什么是JS闭包
无论何时声明新函数并将其赋值给变量,都要存储函数定义和闭包.闭包包含在函数创建时作用域中的所有变量,它类似于背包.函数定义附带一个小背包,它的包中存储了函数定义创建时作用域中的所有变量. 我将永远记住 ...
- cena 测评机下载地址
以下是cane的下载地址,现在分享给你们,希望有所帮助 下载地址百度云:https://pan.baidu.com/s/1JBXiVSZy-jhIc0V-F2ESPA 密码:hgtk 点击下载即可. ...
- JAVA中文字符串编码--GBK转UTF-8
转载自:https://www.cnblogs.com/yoyotl/p/5979200.html 一.乱码的原因 gbk的中文编码是一个汉字用[2]个字节表示,例如汉字“内部”的gbk编码16进制的 ...
- 【linux】【安全】服务器安全建议
引用自 <鸟哥的linux私房菜-服务器篇> http://cn.linux.vbird.org/linux_server/0210network-secure_1.php 建立完善的登 ...
- 面向对象之元类(metaclass)
一.前言: 要搞懂元类必须要搞清楚下面几件事: 类创建的时候,内部过程是什么样的,也就是我们定义类class 类名()的过程底层都干了些啥 类的调用即类的实例化过程的了解与分析 我们已经知道元类存在的 ...
- hdu 6333
Problem Description There are n apples on a tree, numbered from 1 to n.Count the number of ways to p ...
- Linux下open函数、read函数、write函数记录
open() #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> int open( cons ...
- 什么是Maven?
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 发文时,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具.遗憾的是, ...