字符指针

字符指针

字符串打印说明%s

#include <stdio.h>

int main(int argc, char const *argv[])
{
	char str[] = "hello mike";
	//1、%s,从首元素开始打印,直到结束符位置
	//2、%s,操作的是指针所指向的内容
	printf("str = %s\n", str);
	
	//2、str是首元素地址,如果想打印str本身的值,%p,%x,%d,%o
	printf("str = %p\n", str);
	
	//3、*str代表第0个元素,它是char类型
	printf("str3 = %s\n", *str);
	printf("%s\n", *str);

	//%s跟下面那个是一样效果的,这里是%s处理的流程
	int i = 0;
	while(str[i] != '\0')//	while( *(str+i) != '\0')
	{
		printf("%c\n", str[i]);//*(str+i)和str[i]等价
		i++;
	}

	return 0;
}

字符指针

#include <stdio.h>

int main(int argc, char const *argv[])
{
	char str = "hello";

	str[0] = '1';
	*(str+1) = '2';
	printf("str = %s\n", str);//12llo

	//定义一个指针,指向首元素
	char *p = NULL;
	p = &str[0];
	p = str;//数组名就是首元素地址

	*p = 'a';
	p++;
	*p = 'b';
	printf("str = %s\n", str);//abllo
	printf("p = %s\n", p);//bllo 

	return 0;
}

在这里插入图片描述

const修饰字符指针

#include <stdio.h>

int main(int argc, char const *argv[])
{
	char buf[] = "hello";
	char *p1 = buf;
	*p1 = 'a';//改变指针所指向的内存
	p1 = NULL;//改变指针变量本身

	//const修饰*,指针所指向的内存不能修改
	const char *p2 = buf;
	//*p2 = 'a';//err
	p2 =NULL;//ok

	return 0;
}
//char *strcpy(char *dest, const char *src);后面那个字符串是只读形式不能修改 

猜你喜欢

转载自blog.csdn.net/CCai_x/article/details/83824153