C语言指针-字符指针&整型指针char*s int*a

Posted DQ_CODING

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言指针-字符指针&整型指针char*s int*a相关的知识,希望对你有一定的参考价值。

案例代码

#include<stdio.h>
#include<stdlib.h> 
#include<string.h>
int main()
{
	//字符指针
	char *pstr="good dog ww";
	printf("字符指针指向的字符串内容:%s\\n",pstr);
	printf("字符指针本身的地址:%p\\n",&pstr);
	printf("字符指针指向的地址:%p\\n",pstr);
	printf("字符串常量的地址:%p\\n","good dog ww");
    printf("字符串的首个字符内容:%c\\n",*pstr);

	printf("======================================\\n");
	//字符数组
	char c[]="hello";
	printf("字符数组内容:%s\\n",c);
	printf("字符数组地址:%p\\n",c);
	printf("字符数组地址:%p\\n",&c);
	printf("hello字符串常量的地址:%p\\n","hello");

	printf("..........................\\n");
	char *s="abcstring";
	printf("s的内容:%s\\n",s);
	printf("s本身的地址:%p\\n",&s);
	printf("s指向的地址:%p\\n",s);
	printf("abcstring字符串常量的地址:%p\\n","abcstring");

	printf("...........................\\n");
	s="hello";
	printf("s的内容:%s\\n",s);
	printf("s本身的地址:%p\\n",&s);
	printf("s指向的地址:%p\\n",s);



	printf("======================================\\n");
	//整型指针
	int a=1;
	
	printf("a的值:%d\\n",a);
	printf("a的地址:%p\\n",&a);
	printf("...........................\\n");
	int* b=&a;
	printf("b的地址:%p\\n",&b);
	printf("b指向的地址:%p\\n",b);
	printf("b指向的内容:%d\\n",*b);
	
	getchar();
	return 0;
	
}


输出:
字符指针指向的字符串内容:good dog ww
字符指针本身的地址:0057FA7C
字符指针指向的地址:00EB5938
字符串常量的地址:00EB5938
字符串的首个字符内容:g
======================================
字符数组内容:hello
字符数组地址:0057FA6C
字符数组地址:0057FA6C
hello字符串常量的地址:00EB5888
..........................
s的内容:abcstring
s本身的地址:0057FA60
s指向的地址:00EB5810
abcstring字符串常量的地址:00EB5810
...........................
s的内容:hello
s本身的地址:0057FA60
s指向的地址:00EB5888
======================================
a的值:1
a的地址:0057FA54
...........................
b的地址:0057FA48
b指向的地址:0057FA54
b指向的内容:1

*
/

在函数中使用指针

#include<stdio.h>
#include<string.h>
//整型指针
int search(int *arr,int len,int find)
{
	
	int i;
	for(i=0;i<len;i++)
	{
		if(find==arr[i])
		{
			return i;
		}
	}
	return -1;
}

//字符指针
char* increase(char* c)
{
	int i;
	for(i=0;i<strlen(c);i++)
	{
		c[i]=c[i]+1;
	}
	return c;
}
int main()
{
	int arr[]={1,2,3};
	int len=sizeof(arr)/sizeof(int);
	printf("结果为:%d\\n",search(arr,len,3));

	char c[]="ABCDEF";
	printf("%s\\n",c);
	increase(c);
	printf("%s\\n",c);
	getchar();
	return 0;
}

以上是关于C语言指针-字符指针&整型指针char*s int*a的主要内容,如果未能解决你的问题,请参考以下文章

C语言 多重指针--整型&字符&字符串 int**pp

c语言计算字符串的长度(用指针)

C和指针

C语言指针进阶第二站:指针数组!

C语言---指针进阶

c语言指针变量?