1. 程式人生 > 其它 >27.字串常量和文字常量區

27.字串常量和文字常量區

字串常量

#include<stdio.h>
int main()
{
	//1.每個字串都是一個地址,這個地址是字串首元素的地址
	//2.字串常量放在data區,文字常量區
	printf("s1 = %s\n", "hello mike");
	printf("s1 = %p\n", "hello mike");
	printf("s1 = %s\n", "hello mike" + 1);//跳過第一個元素
	printf("s4 = %c\n", *("hello wprld"));
}

文字常量區(不允許修改)

#include<stdio.h>
#include<string.h>
int main()
{
	//1.字串常量就是此字串的首地址元素
	printf("s1 = %p\n", "hello mike");
	char* p5;
	p5 = "helllo world";
	char* p2;
	printf("p2 = %p\n", "hello world");
	//2.字串常量,文字常量區的字串只讀,不能修改
	printf("p1 = %c\n", *p2);
	//3.p1指向字串常量,字串常量為只讀
	//*p1 = 'a';修改,error

	/*
	char* p3 = "hello";
	strcpy(p3, "abc");  p3指向文字常量區,不可以修改
	*/
	//1.p指標儲存了"hello"的地址,指標所指向的記憶體不可以修改
	char* p = "hello";
	//2.把"hello"一個一個字元的放在buf陣列中,陣列的元素是可以修改的
	char buf[] = "hello";

	char* q[] = { "hello", "abc", "mike" };
	int n = sizeof(q) / sizeof(*q);
	for (int i = 0; i < n; i++)
	{
		printf("%s\n", p[i]);
	}
	
}