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指针>的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教. 指针运算有很多种,主要有指针的声明*.指针的解引*.指针指向(*).或->.指针 ...
随机推荐
- [].indexOf.call()学习
今天看到闭包一道题,就是一个li列表,点击列表控制台输出对应的索引.这里考察了var的作用域问题和闭包对外部变量的引用问题,有几种解决方法. html: <ul> <li>te ...
- Seek and Destroy-freecodecamp算法题目
Seek and Destroy(摧毁数组) 要求 实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值. 思路 利用for循环将输入arguments中除第一项待 ...
- Flask-数据与路由
数据 图书数据库的地址 # 基地址 http://t.yushu.im # 关键字搜索 http://t.yushu.im/v2/book/search?q={}&start={}&c ...
- Python爬虫系列-BeautifulSoup详解
安装 pip3 install beautifulsoup4 解析库 解析器 使用方法 优势 劣势 Python标准库 BeautifulSoup(markup,'html,parser') Pyth ...
- day22-python之模块
1.os import os # print(os.getcwd()) # os.chdir("..") # print(os.getcwd()) # os.makedirs('d ...
- python3 简单服务器监控,自动发送邮件
import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimpo ...
- 通过IAR工程文件查看对应IAR版本号
IAR使用技巧——如何使用合适的版本打开IAR工程 2014年07月05日 23:49:08 xukai871105 阅读数:12895 标签: IAR 更多 个人分类: 嵌入式ARM 0.前言 ...
- CodeForces - 948C Producing Snow(优先队列)
题意: n天. 每天你会堆一堆雪,体积为 v[i].每天都有一个温度 t[i] 所有之前堆过的雪在第 i 天体积都会减少 t[i] . 输出每天融化了的雪的体积. 这个题的正解我怎么想都很难理解,但是 ...
- HDU 3315 KM My Brute
参考题解 二分图的最优匹配.图很容易建立.再处理相似度的时候.把每个权值扩大100倍.然后再对i==j时 特殊标记.使他们的权值再++1.后面选择的时候就很容易挑出.按原匹配 匹配的个数. 100*( ...
- luogu2764 最小路径覆盖问题
最小路径覆盖,看这里 #include <iostream> #include <cstring> #include <cstdio> #include <q ...