字符串和指针(一)

一、初始化

char *p_ch = "china";//指向字符串china的首地址

printf("%c\n",*(p_ch));//c

char *p_ch = {"guangdong","guangzhou","shenzhen"};//三个char型指针,

//p_ch[0],代表“guangdong”的首地址,*p_ch[0]的结果是g

char ch = {"guangdong","guangzhou","shenzhen"};


#include<stdio.h>
int main(){
	/*
	char *ch[] = { "china", "ameria", "anhui", "guangdong" };
	//char *p_ch = "china";//指针p_ch指向字符串china的首地址
	//printf("%c\n", *(p_ch + 1));//h
	for (int i = 0; i < 4; i++){
		printf("%s\n", ch[i]);
	}
*/
	char *p_mesg = "don't be a fool!";
	char *p_copy;
	p_copy = p_mesg;//指向“don't be a fool!”地址的第二个指针,而不是直接的数组复制,
	//使用指针操作比直接复制数组效率要高很多
	printf("p_mesg= %s\n"p_mesg);
	printf("p_copy= %s\n"p_copy);
	printf("p_mesg= %p\n"p_mesg);//012A58

	printf("p_copy= %p\n"p_copy);//012A58
	printf("&p_mesg= %p\n", &p_mesg);//0030f897
	printf("&p_copy= %p\n", &p_copy);//0030F890
	
	return 0;
}

//补充

//指针和字符串之间的关系
//当一个指针赋值给另一个指针是,两个指针和字符串之间的关系
#include<stdio.h>
int main(){
	char*p_str="abc";
	char*p_scpy=p_str;
	printf("p_scpy=p_str\n");
	printf("p_str=%s\n",p_str);		//abc
	printf("p_scpy=%s\n",p_scpy);		//abc
	printf("value of p_str=%p\n",p_str);	//字符串abc的首地址
	printf("value of p_scpy=%p\n",p_scpy);	//字符串abc的首地址,同上
	printf("**************************\n");
	printf("p_str[0]=%c\n",p_str[0]);	//字符串的首字符
	printf("p_scpy[0]=%c\n",p_scpy[0]);	//同上
	printf("&p_scpy[0]=%p\n",&(p_str[0]));	//字符串abc的首地址
	printf("****************************\n");
	printf("&p_str=%p\n",&p_str);		//指针p_str的地址
	printf("&p_scpy=%p\n",&p_scpy);		//指针p_scpy的地址,与上不同
	return 0;
}

/*

p_scpy=p_str
p_str=abc
p_scpy=abc
value of p_str=0x80485e0
value of p_scpy=0x80485e0
**************************
p_str[0]=a
p_scpy[0]=a
&p_scpy[0]=0x80485e0
****************************
&p_str=0xbfad6af8
&p_scpy=0xbfad6afc

*/
//补充二

//补充三
使用取地址符号&和间接操作符(取值操作符)*可以方便的操作地址以及地址中的内容。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值