字符串常量属于静态存储类别(static storage class),如果在程序中使用字符串常量,该字符串只会被储存一次,在整个程序的生命周期内存在。用双引号括起来的内容被视为指向该字符串储存位置的指针。这类似于把 数组名 作为指向该数组位置的指针。
举个栗子:
/*把字符串看作指针*/
#include<stdio.h>
int main(void){
printf("%s, %p, %c\n","We","are",*"space farers");
return 0;
}
运行结果如下:
We, 0x10fbfffa1, s
printf()根据%s转换说明打印We,根据%p转换说明打印一个地址,*"space farers"表示该字符串所指向地址上的储存的值,也就是字符串“space farers"的首字符。
--《c primer plus》读书笔记
网友评论