C语言指针和数组总结

1.指针的定义(以char *为例,即指针指向的char类型的变量)
char *p=(这里可以等于空,可以等于地址,还可以等于字符串)

char *p="adlkfjalksdf";//p指针指向的内存存放的是这个字符串
char *p1=&x;//p指针指向的内存存放的是变量x
char *p=(char *)malloc(sizeof(char));//为指针p开辟了内存,但是还未存放内容
char *p;//没有开辟内存
char *p=NULL;//没有开辟内存

2.指针的使用(还是以char *为例)
*p=(这里只可以等于变量,不可以为空或地址)
p=(可以等于其他的指针,但是不能等于地址)
p+q;p+2;p++;指针之间可以加减,直接可以和int加减,得到的还是指针。(注:有的书上说指针之间的加法是非法的,减法是合法的)

*p='a';
*p=*q;
p=q;
p=&a;//这样赋值错误
p+q;
q=p+2;
p++;

3.函数中指针的使用

int str(char *s)//代表传过来的s是指针
{
	char *p=s;//用指针p去接住s,后边p指针的用法同上。这样相当于p和s同时指向同一个地方,所以对p指向内容的修改就相当于在主函数中队s指向内容的修改了。
	*p='a';
}
void main()
{
	int a;
	char *s = "dalkfajsdlkfja";
	a = strlen(s);//传入指针,不是值。
	char ss;
	a = strlen(&ss);//传入指针,不是值。
}

4.指针与数组
char s[]和char *s等价。
char arr[]=“hello”;
char *arr=“hello”
f(int arr[])和f(int *arr)等价。
例如

void strlen(char *s,char *t)
{
	int i;
	i = 0;
	while ((s[i] = t[i]) != '\0')
		i++;
}

5.数组指针:数组里存的是指针,指针指向不同的变量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值