部分C2教学笔记(数组指针)

旧时模样 提交于 2020-02-27 23:47:17

C2-01数组知识点

一、声明数组

1.元素的概念
2.Int a[10]四部分
Int——数据类型:元素的数据类型
a——数组名:
① 是一个指针常量而不是变量,值为数组的首地址=&a[0]
② 注意重名问题int a;int a[10]不行 charb[5];floatb[10]不行
10——下标:
① 数组的下标表示:数组中元素个数
② 数组中元素的下标从0开始
[]——下标运算符
3.同时声明多个数组

二、数组的赋值
1.赋值符号赋值,数组的初始化:
  • =与{},二者缺一不可。
  • 两个数之间用,隔开
  • 3+1种形式
    3:
    完整 :Int a[10]={1,2,3,4,5,6,7,8,9,10};
    省略下标数:Int a[]={1,2,3,4,5,6,7,8,9,10};
    省略部分元素:Int a[10]={1,2,3,4,5,6};只给前6个元素赋值,其余元素赋值为0
    (注:只有这里这种情况会默认给没有初值的值赋值为0,只做声明int a[10];不会给整个数 组 都给个0作为初值)
    1: (其实属于第三种)
    均赋值为0时
    Int a[10]={0};
    (注意:int a[10]={1};并不会都赋值为1,这属于3+1中3的第三种)
2.输入值:利用for循环cin
三、输出:利用for循环
四、Sizeof(数据类型)

不同的计算机和不同的C编译器下各数据类型所占空间不同
以下32位机,Dev-C++下sizeof()得到的结果
①Char:1——char,unsigned char,signed char
②整型:默认signed,unsigned不能省略
Int:4
Short:2
Long:4
③实型:无unsigned和signed
Float:4
Double:8

C2指针

一、内存空间,内存大小(内存空间的大小),内存地址(内存空间的地址号)

1)连续的:内存空间是连续的,内存地址也是连续
2)变量的内存地址
3)数组的内存地址,数组中某个元素的内存地址
2和3都是指它们所占内存的第一个字节的地址号

二、直接访问、间接访问与指针变量

直接访问:通过变量名找到变量访问
间接访问:通过地址号找到变量访问(这个地址号就存在一个指针变量里面)

三、指针

是一种数据类型:表示“地址号”,形式上看是一个正整数
指针常量
指针变量
① 指针变量的定义: 指针变量说指向的数据类型 *变量名
例:float * x;
定义了一个指针类型的变量x(x所指向的数据是一个float型数据)
float x,*p1,*p2;

② 指针变量的值的含义:该指针变量所指向的变量的内存地址号
③ 指针变量的赋值:
a.方法:用=即可
例,对于指针变量pa:pa=&c;

C2指针的运算、指针与数组

一、指针的算术运算

1.一个指针加减一个整数
不是简单的地址值和数字进行加减
对于指针变量p,p+i的值 为p的值+i*d的值(d为p所指向的变量单元所占用的字节 数),数组中,从当前 下标+i 指向的个元素的指针。
2.两个指针之间
只有当两个指针指向同一数组时相加减才有意义。
差为两个指针所指向数组元素的距离,即下标差。
3. *(pa+n)与(*pa)+n;

二、指针的关系运算

指针与一个整型数据:比较无意义
同一数组的两个指针:表示指向元素的前后顺序,指向元素的下标更大的指针值更大。
指针与NULL可:通过关系运算符==和!=判断一个指针是否为空指针

三、数组与指针

Int a[10],*pa;
pa=a;
数组引用:a[i] *(a+i) *(pa+i) pa[i]

另一版本

C2数组
1.声明数组 int a[10]
Int:数组中所有元素的数据类型
a:数组名 ——还表示数组的地址(号)
[]:下标运算符
10:下标,表示数组中元素的个数
2.数组赋值
1)赋值符号赋值:=和{}二者缺一不可,数据用,隔开
三种方式
Int a[10]={1,2,3,4,5,6,7,8,9,10};
Int a[ ]={1,2,3,4,5,6,7,8,9,10};
Int a[10]={1,2,3,4,5};
(注意:
后面未赋值的元素会被默认赋值为0
Int a[0]={0} 将所有元素赋值为0
Int a[0]={1} 不可以将所有元素赋值为1

2)输入赋值:用for循环与cin
3.数组输出:用for循环与cout
4.数组的内存空间
1)内存空间大小:元素的个数*数据类型所占空间的大小 sizeof();
2)内存地址:
数组的内存地址和数组中某个元素的内存地址——所占空间的第一字节的地址号
a作为数组名可以表示数组a[10]的地址 = &a[0]

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!