一维和二维数组以及指针相关知识

数组:一类相同元素的集合。

例如:{1,2,3,4,5,6}

一维数组的初始化:

类型+数组名[] = {element};

其中数组名后的[]内可以什么都不写,element如果不知道写什么可以先写0。

二维数组的初始化:

类型+数组名[][7] = {element};

注意数组名后的第二个括号内必须写上数值(列),第一个括号内可以什么都不写(行),element也可以写为0。

数组名:

一维数组的数组名代码数组首元素的地址,二维数组的数组名代表数组第一行的地址,第一行元素的地址即是第一行元素首元素的地址。

指针类型的意义:

1.决定了解引用指针时能够访问空间的大小

2.决定了指针的步长的大小

野指针:指针指向的地址是随机的,不确定的。就像街上的野狗一样,没有主人。

产生原因:

1.指针未初始化

2.指针指向的空间已被释放

3.指针的越界访问

如何规避野指针:

1.指针使用前进行初始化

2.判断指针指向的空间是否发生改变

3.避免指针越界访问

4.指针使用前判断此指针是否为空指针

指针的相关操作:

1.指针加减整数

eg:

int a = 7;

int* p = &a;

printf(" %p\n ",*p);

printf(" %p\n ",*p + 1);

return 0;

结果是二者地址相差4个byte。

指针跳过的字节数与指针类型有关。

2.指针减指针

意义:结果是二者之间元素的个数。

eg:

int arr[7] = { 1,2,3,4,5,6,7 };

printf(" %d\n ", &arr[6] - &arr[0]);

return 0;

结果是7。

 

 

 

 

 

 

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值