C语言指针详解:字符串与数组关系详细教程

需积分: 9 13 下载量 48 浏览量 更新于2024-07-13 收藏 1.62MB PPT 举报
字符串与数组关系-C语言指针完整教程 本教程主要讲解了C语言中的字符串与数组关系、指针的概念、指针变量、地址与指针运算符、直接访问与间接访问等知识点。 字符串与数组关系 在C语言中,字符串用一维字符数组存放。字符数组具有一维数组的所有特点,数组名是指向数组首地址的地址常量。数组元素的引用方法可以用指针法和下标法。数组名作函数参数是地址传递等。 字符串存储格式 字符串在内存中存储的格式是以NULL字符(‘\0’)结尾的字符数组。例如:char str[] = “Hello!”; 等价于 char str[] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’};。 数组名的特点 数组名是指向数组首地址的地址常量。例如:char str[] = “Hello!”; 中,str是指向数组首地址的地址常量。 指针的概念 指针是一个变量的地址,指针变量是专门存放变量地址的变量。例如:int i; int *pi = &i; 中,pi是指针变量,&i是变量i的地址。 &运算符和*运算符 &运算符是取变量的地址,*运算符是取指针所指向变量的内容。例如:int i = 10; int *pi = &i; 中,&i是取变量i的地址,*pi是取指针pi所指向变量i的内容。 直接访问与间接访问 直接访问是按变量地址存取变量值,间接访问是通过存放变量地址的变量去访问变量。例如:int i = 3; 中,i = 3是直接访问,而*i_pointer = 20; 是间接访问。 指针在C语言中的应用 指针在C语言中有很多应用,例如:使程序简洁、紧凑、高效、有效地表示复杂的数据结构、动态分配内存、得到多于一个的函数返回值等。 scanf和printf函数 scanf函数和printf函数是C语言中的输入输出函数。例如:scanf(“%s”, str); printf(“%s”, str); 中,scanf函数输入字符串到str数组中,printf函数输出str数组中的字符串。 gets和puts函数 gets函数和puts函数是C语言中的输入输出函数。例如:gets(str); puts(str); 中,gets函数输入字符串到str数组中,puts函数输出str数组中的字符串。