马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在带你学C带你飞课程的s1e22课中,我有一个问题
char *str = "I love Fishc.com"
关于这一句
- char *str = "I love FishC.com!"
复制代码
这一句应该要怎么理解?为什么一个指向字符的指针可以赋值一个字符串?(大佬勿喷)
我可不可以认为,这句代码跟声明一个 str[]="I love..." 的字符串是等价的?
①char虽然是字符型的,但是并不代表只能用char来存储字符,int,float也可以存,ascll码表的范围是1~127,所以只要数据类型大小范围超过127就可以存字符,但是不一定能显示,而且数据类型只是一个大小的区别,和有符号无符号的区别。
②不是赋值字符串,是把这个字符串的首地址给了这个指针,和我代码这句是一个意思char *P=arr;
③不是等价的,数组是把你的字符串都存了起来,是数据存了起来,而指针只存地址
- #include "stdio.h"
- int main()
- {
- char arr[] = "I love FishC.com!";
- char *P=arr;
- printf("%c\r\n",arr[3]);
- printf("%c\r\n",*(P+3));
- printf("\r\n");
- printf("%s\r\n",arr);
- printf("%s\r\n",P);
- }
复制代码
|