额外减小 发表于 2022-8-27 16:26:26

关于C指针与数组的问题

在带你学C带你飞课程的s1e22课中,我有一个问题
关于这一句
char *str = "I love FishC.com!"
这一句应该要怎么理解?为什么一个指向字符的指针可以赋值一个字符串?(大佬勿喷)
我可不可以认为,这句代码跟声明一个 str[]="I love..." 的字符串是等价的?

温良先生 发表于 2022-8-27 19:07:29

①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);
        printf("%c\r\n",*(P+3));
        printf("\r\n");
        printf("%s\r\n",arr);
        printf("%s\r\n",P);
}

额外减小 发表于 2022-8-27 22:41:37

温良先生 发表于 2022-8-27 19:07
①char虽然是字符型的,但是并不代表只能用char来存储字符,int,float也可以存,ascll码表的范围是1~127, ...

有点理解你的意思了,容我再想想消化{:10_254:}

额外减小 发表于 2022-8-28 12:00:30

温良先生 发表于 2022-8-27 19:07
①char虽然是字符型的,但是并不代表只能用char来存储字符,int,float也可以存,ascll码表的范围是1~127, ...


请问 我用dev-c++来编写这一个程序,但出现了警告,为什么?
是两种语言本身的差异吗

人造人 发表于 2022-8-28 15:49:37

额外减小 发表于 2022-8-28 12:00
请问 我用dev-c++来编写这一个程序,但出现了警告,为什么?
是两种语言本身的差异吗

你学的是C语言还是C++ ?
C语言和C++是不一样的
告诉我,C语言的源文件后缀是什么?
是 .cpp 吗?
C++中的字符串常量的类型可不是 char *
C++中的字符串常量的类型是 const char *

kerln888 发表于 2022-8-28 16:45:50

学习了{:10_256:}

kerln888 发表于 2022-8-28 16:46:40

{:10_256:}{:10_256:}{:10_256:}{:10_256:}

额外减小 发表于 2022-8-28 23:53:27

人造人 发表于 2022-8-28 15:49
你学的是C语言还是C++ ?
C语言和C++是不一样的
告诉我,C语言的源文件后缀是什么?


tql 原来是这样。
谢谢您   {:10_256:}

额外减小 发表于 2022-8-28 23:58:44

人造人 发表于 2022-8-28 15:49
你学的是C语言还是C++ ?
C语言和C++是不一样的
告诉我,C语言的源文件后缀是什么?


请问一下这位大佬
我是学C,可不可以直接就用dev-C++编译后缀是.c的源文件,会出现问题吗?(dev...是否支持C语言,如果是的话,我就不下载其他C编译器了)
谢谢大佬{:10_254:}

人造人 发表于 2022-8-29 00:01:31

额外减小 发表于 2022-8-28 23:58
请问一下这位大佬
我是学C,可不可以直接就用dev-C++编译后缀是.c的源文件,会出现问题吗?(dev...是否 ...

不会出问题

额外减小 发表于 2022-8-29 00:14:46

人造人 发表于 2022-8-29 00:01
不会出问题

谢谢大佬
页: [1]
查看完整版本: 关于C指针与数组的问题