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>

运行结果:

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

时间: 2024-08-06 15:58:36

C语言之深入指针与字符串的相关文章

C语言实现二级指针表示字符串数组

头文件: #include<stdlib.h> #include<stdio.h> #include<string.h> 函数原型: char ** createBuff(char **buff, int arraylength, int charLength); //创建二级指针 void initDemo(char **buff, int arrayLength); //初始化二级指针 void destoryBuff(char **buff, int arrayL

c语言之利用指针复制字符串的几种形式

第一种: #include<stdio.h> #include<iostream> void copy_string(char* p1, char* p2) { for (; *p1 != '\0'; *p1++,*p2++) { *p2 = *p1; } *p2 = '\0'; } int main() { char* str1 = (char*) "hello world"; char str2[] = "i am a student";

C语言基础学习5:字符串与指针

1.字符串的表示形式 (1)用字符数组存放一个字符串,然后输出该字符串. char string[] = "I am happy"; printf("%s",string); (2)用字符指针指向一个字符串. char *string = "I am happy"; printf("%s",string); 2.字符指针作函数参数 (1)用字符数组作参数 void CopyString(char from[], char to

黑马程序员-C语言基础:指针类型与指针和数组、字符串的关系

//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值: 指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比

C语言中字符数组和字符串指针分析

这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这做个小总结,也算加深下自己的印象,写了下面的测试程序: #include <stdio.h> int main(int argc, char *argv[]){ char day[15] = "abcdefghijklmn";  char* strTmp = "opq

嵌入式 Linux C语言(五)——指针与字符串

嵌入式 Linux C语言(五)--指针与字符串 一.字符串简介 1.字符串声明 声明字符串的方式有三种:字面量.字符数组.字符指针. 字符串字面量是用双引号引起来的字符序列,常用来进行初始化,位于字符串字面量池中,字符字面量是用单引号引起来的字符. 字符串字面量池是程序分配的一块内存区域,用来保存组成字符串的字符序列.多次用到一个字符串字面量时,字符串字面量池中通常只保存一份副本,一般来说字符串字面量分配在只读内存中,是不可变的,但是当把编译器有关字面量池的选项关闭时,字符串字面量可能生成多个

用c语言指针处理字符串

字符串的处理方法有两种:一种方法是使用字符数组处理字符串,另一种是方法是使用字符指针处理字符串. 后一种也是c语言比较常用的方法.下面我们来看一个列子: 1 #include<stdio.h> 2 int main() 3 { 4 char a[50],*str1,*str2; 5 char b[]="I am student."; 6 str1 = a; 7 str2 = b; 8 while((*str1=*str2)!='\0') 9 { 10 str1++; 11

Swift3.0语言教程使用指针创建和初始化字符串

Swift3.0语言教程使用指针创建和初始化字符串 Swift3.0语言教程使用指针创建和初始化字符串苹果的Swift团队花了不少功夫来支持C的一些基础特性.C语言中为我们提供了指针,Swift也不例外,开发者可以使用指针去创建和初始化字符串. (1)在NSString中init(bytes:length:encoding:)方法可以从给定字符串按照指定获取方向,得到指定个数的字符,然后使用这些字符创建和初始化字符串.其语法形式如下: convenience init?(bytes: Unsaf

网易云课堂程序设计入门--C语言第七周:指针与字符串学习笔记

====================================== 第七周:指针与字符串学习笔记 网易云课堂 程序设计入门–C语言 指针与字符串 学习笔记 ====================================== 7-1指针初步 7-1-1类型大小与取地址运算 sizeof是一个运算符 给出某个变量货类型在内存中所占据的字节数 sizeof(int); sizeif(i); double变量在内存中占据的空间是int变量的两倍 { int a; a =6; prin