指针(一)字符指针 数组指针 指针数组

一、字符指针

1.char* pc=&ch

2.字符指针:四个字节

3.char* p = “abcdef” //把字符串首字母的地址赋值给了p,不是存整个字符串

  char arr[] = “abcdef”//这个是将整个字符串给arr[]这个数组里

注意:const char* p = abcdef //加上const意味着char *p不能再被改动了,指针指向的字符串是常量

4.

p1 和 p2 都被const char*定义以后就意味着指针不能被修改,同时地址也不能被修改,也就是说p1和p2所指向的字符串首地址都是相同的,所以p1==p2

arr1和arr2首地址是不相同的两个,所以arr1和arr2不相同

总结:如果比较的是内容,那么arr1和arr2是相等的,但是现在比较的是字符串首字符的地址,这个是不相等的

小知识引入

二、指针数组 char* arr[]    int* arr[]

重点是数组,是用来存放指针的数组

 1.  各种数组形式  

注意:数组名相当于首元素的地址

             Eg: arr1[] = {1,2,3,4} //其中arr1相当于1的地址

2.指针数组

三、数组指针------>>指向数组的指针

1.理解指针数组数组指针

2.数组名

难点一:

综上所述:

(1)arr[]是非法的

(2)arr输出的是首元素的地址

(3)如果只写{0}或者什么也不写{ }--->每一个元素都会初始化为0

难点二:

综上所述:

(1)&arr[0]--->取地址取的是数组元素首元素的地址

(2)&arr--->取地址取的是整个数组的地址

(3)arr--->没有取地址符号的时候也是数组元素首元素的地址

(4)数组指针就是用来存放数组的地址:int (*p2)[10] = &arr;

数组名通常表示的都是数组首元素的地址

但是有两个例外

1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小

2.&数组名,这里的数组名表示的依然是整个数组,所以&数组名取出的是整个数组的地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值