指针的学习

指针

1.&是取地址的运算符,*是表示指针运算符
例如:
int *p1,a;
p1=&a;
*p1 =3;

2.指针作函数参数
函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。作用是将变量的地址传送到另一个函数中。
变量的地址赋予指向相同类型的指针变量

3.指针的运算–赋值运算:
指针变量初始化赋值;
把一个变量的地址赋予指向相同数据类型的指针变量;
例如:
int a, *pa ;pa = &a ; // 把a的地址给pa,都是整型
int a, *pa = &a, *pb ; pb = pa; // 把a的地址给pb

4.指针与NULL的比较
空指针是对指针变量赋予0值得到的:
#define NULL 0
int *p=NULL; 空指针
p为指针变量,p=NULL表示空指针,不指向任何变量。
P !=NULL表示p不是空指针;

5.数组元素和指针
数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。
例如:
int a[10]; /定义a为包含10个整型数据的数组/
int *p; /定义p为指向整型变量的指针/
p=&a[0]; 把a[0]元素的地址赋给指针变量p。
也就是说,p指向a数组的第0号元素用指针引用数组元素

C语言规定:
如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。
例:
P的初值为&a[0] :
p+i和a+i都是a[i]的地址。
(p+i)和(a+i)都是p+i和a+i所指向的数组元素,即a[i].
例如:
*(p+5), *(a+5)就是a[5].

指向数组的指针变量也可以带下标。p[i]和*(p+i)等价。
引用一个数组:
下标法:用a[i]来表示;
指针法:用*(a+i),*(p+i)表示。

6.用字符串指针指向一个字符串。
main()
{
char *string[]={”I love China!”,”I am ”};
printf("%s\n",string);
}
char *s=“C Language”; 则表示s是一个指向字符串的指针变量。
把字符串的首地址赋予s。
字符数组和字符串的区别
字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。
字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。
对字符串指针方式 char *ps=“C Language”;
可以写为:
char *ps; ps=“C Language”;
而对数组方式: char st[]={“C Language”};
不能写为:
char st[20]; st={“C Language”};
而只能对字符数组的各元素逐个赋值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值