首页 > 代码库 > C语言之深入指针与字符串

C语言之深入指针与字符串


<span style="font-family:KaiTi_GB2312;font-size:24px;">#include<stdio.h>
#include<stdlib.h> //要使用malloc(),必须包含此库文件
void main()
{
	char count, *ptr1, *p;
	
	ptr1 = malloc(27*sizeof(char));
	ptr1[26] = 0;//字符串要加0
	if (ptr1 == NULL)
	{
		puts("没有足够的空间卡可以分配!\n");

	}

	p = ptr1;//将ptr1指针地址赋值给指针p
	for (count= 65; count < 91; count++)
	{
		*(p++) = count;
	}
	printf("打印ptr1:\n");
	puts(ptr1);//打印出ptr1中的所有值
	printf("打印P:\n");
	p = ptr1; //因为此时P指针地址已经指到了0处,所以必须赋值。
	puts(p);
	free(ptr1);  //释放malloc()分配的内存
	system("pause");

}

</span>



运行结果:





<span style="font-family:KaiTi_GB2312;font-size:24px;">#include<stdio.h>
#include<stdlib.h> //要使用malloc(),必须包含此库文件


void main()
{
	char *message;//声明一个名为message的指针,但此时不指向任何地址。

	char *message1 = "I am mini ,I am  very well ! ";//mesage1是指向该字符串的指针。
	//等价于
	char *message2[] = { "I am mini ,I am  very well ! " }; //如果编写程序时,知道要分配多少空间,则可以使用这种方式。

	/*
	也可以使用malloc()动态分配内存空间
	malloc()是C语言中的一个内存分配函数。malloc()返回一个地址,该函数返回类型为void指针。

	*/

	char *str;
	str = (char *)malloc(100);//为字符串分配100字节空间
	if (str == NULL)//当没有足够的内存空间可以分配,则返回NULL
	{
		printf("没有足够的空间!\n");
		exit(1);
	}

	int *numbers;
	numbers = (int *)malloc(50 * sizeof(int));//为int类型分配空间

	float *numbers1;
	numbers1 = (float *)malloc(10 * sizeof(float));

	//存储一个字符的内存空间
	char *ptr;
	ptr = malloc(1);//分配1字节的空间
	*ptr = 'x';//将字符x存入*ptr中

	printf("分配空间完毕!\n");
	system("pause");
}</span>


运行结果: