前言
博主最近打算往嵌入式软件开发方向转,于是开始自学了C语言。由于博主本来就有一定的C语言基础,所以开始学习《C指针编程之道》这本书。这本书主要围绕了C语言当中常见的指针问题展开了讨论,并且还在书中设置了一些小项目供读者练习,十分适合有一定C语言基础,想要进阶学习C语言的小伙伴学习。
本博客主要是为了记录一下,博主在学习《C指针编程之道》这本书的过程当中,遇到的一些让博主觉得值得小伙伴们一起引起注意的篇章以及需要手动实现的小项目,本篇讲的是2.6节聚集字符串的指针。
一、字符串指针的定义
如下:
char *string;
string = "hello world";
此时,string指针会指向“hello world”这个字符串的首个元素的地址,即’h’的地址。
二、字符串指针的引用
1.利用指针打印字符串
代码如下:
#include <stdio.h>
int main(void){
char *str = "hello world";
printf(" %s \n",str);
return 0;
}
这个代码看似十分简单,但是也有要注意的点,一般我们要访问一个指针指向的数据,需要用*解引用,比如对于一个指向了整型数据指针的访问,我们需要解引用:
#include <stdio.h>
int main(void){
int a = 0;
int *i = &a;
printf(" %d \n",*i);
return 0;
}
但对于指向字符串的指针存储的数据的访问,我们不需要*解引用。
2.利用字符数组打印字符串
代码如下:
#include <stdio.h>
int main(void){
char str[] = "hello world";
printf(" %s \n",str);
return 0;
}
道理与使用指针类似,一般来说,我们访问数组元素是要通过数组+数组下标的形式访问,但是对于字符数组,我们只需调用其数组名就能返回整个字符串。
知识提示
1.字符串指针变量指向字符串的首地址。
2.可以移动字符串指针变量,访问字符串的各个字符。