C语言学习笔记4

---摘要:C语言学习个人向记录-字符串相关---

字符串与字符串函数

字符串声明

两种声明方式

数组声明和指针声明

1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
#define HRD "I am hardworking."
int main(void)
{
char words[90]="I am hardworking.";
const char *pt1=HRD;
printf("%p\n",words);
printf("%p\n",HRD);
printf("%p\n",pt1);
}

数组会制造副本,words是指针常亮,指向被制造出来的副本

pt1则直接指向HRD,二三行打印出来是一样的

这也是为什么一定要把指针声明的字符串声明为const

“I am hardworking.”也不过是个指针,它的内容被改变了,你是很难发现的

可以的操作:

pt1++,words[0],pt1[0],words+1,*(pt1+1), *(words+1)

不可以的操作:

words++;//数组名是指针常量,++了地址就变了

pt1[0]=’1’;//不能这样嗷,指针声明别瞎改