1.使用char*const p是不是只能定义一个字符,而不能定义字符串,因为我在实验的时候发现如果定义一个字符串,printf("%s\n",p);显示不出来,而且我发现如果把%s改成%c也无法显示,但是既然定义的是字符,不应该%c才能显示吗?怎么倒过来了
4条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
傅某人__ 2016-10-05 05:50最佳回答 专家已采纳printf用%c后面匹配的应该是char类型,并输出这个字符;printf用%s后面匹配的应该是指向字符串第一个字符的字符型指针,并输入整个字符串(从首字符到‘\0’)
首先p是一个指向字符的指针,它是一个指针类型,而不是一个char类型,所以用%c是肯定不对的。
另外用%s是可以输出的,显示不出来具体是指什么?这里const使p指向的地址不能改变,会不会是因为没有初始化?采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(3条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2016-10-05 05:07回答 4 已采纳 printf用%c后面匹配的应该是char类型,并输出这个字符;printf用%s后面匹配的应该是指向字符串第一个字符的字符型指针,并输入整个字符串(从首字符到‘\0’) 首先p是一个指向字符的
- 指针数组处理字符串(如:char *s[] = { "Hello","World","!" };)Visual Studio 2017无法正常编译 出现错误error C2440: “初始化”: 无法从“const char [6]”转换为“char *” c语言2020-07-01 17:32回答 1 已采纳 "Hello","World","!"是常量字符串,加上const符合c语言标准。 const char *s[] = { "Hello","World","!" }; for (i = 0
- 2022-02-09 21:30回答 3 已采纳 第一个是字符串指针数组,每个指针都指向一个字符串,第二个是字符数组。这个程序主要先获取你输入的字符串,进入for循环,并将你输出的字符串逐一和第一个字符串指针数组里的所有值进行比对,如果相同就打印:欢
- 2021-09-02 21:22小哇123的博客 为什么const char*就是针对字符串是用的呢,因为这是一个常量指针,字符串是常量,而且是存储在系统负责管理的常量存储区中的,编译器无权对其进行修改。而且又是char类型的指针,还是一个常量指针,自然就能够与...
- 2021-05-21 04:55努力的大头兵的博客 在C中将long转换为char * const的正确方法是什么?... //Need to do thisThirdPartyFunction(char* const identifierString){}编辑:在C中将整数转换为字符串的“正确”方法是使用字符串流.例如:#incl...
- 2021-01-20 05:35众所周知,C语言中没有数据类型能够存储字符串,char数据类型仅仅能够存储一个字符的数据,那么在C语言中关于存储字符串这一难题我们改何去何从呢? 下面将详述相关的字符串存储方法; 1、使用字符数组存; [root@Qrui...
- 2022-05-05 22:45回答 1 已采纳 根据你提供的资料,作了一个实现,供参考: #include <stdio.h> int strcompare(const char * str1,const char * str2){
- 2014-11-24 09:37回答 4 已采纳 我来解释一下: 数组初始化 1、char str[]="123";//不报错 原因是,这样的写法,实际上str是一个指针变量,str指向了“123”数据段。 等效于char *str="123
- 2020-06-26 09:45回答 2 已采纳 # 问题解决的话,请点下采纳 ``` #include #include #include
- 2021-11-24 22:01nanke_yh的博客 在C/C++语言中表示字符串的方式有两种: 1、char* a 2、string b 对于这两种方式各自之间比较又是怎么处理的呢? 我们知道,数值直接进行比较,直接用'>'、'<'、'=='来判断。而对于一串字符这样比较对...
- 口在天上,数在心中的博客 const的详细用法和const char*, char const*, char*const的区别,const和define宏定义的区别 一个电脑小白的自我成长之路,*_^ 下面的代码中编译器会报一个错误,你知道是哪个语句错了吗? ```cpp typedef char * ...
- 2021-01-20 06:42就字符串的拼接函数为例strcat.原型:extern char *strcat(char *dest,char *src);用法:#include 功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的’\0′)并添加’\0’。说明:src和dest所指内存区域不可以...
- 2022-03-05 18:23回答 1 已采纳 供参考: #include<stdio.h> #include<ctype.h> #include<string.h> #include<malloc.h&g
- 2019-08-22 09:08回答 1 已采纳 大概算是野指针问题,你这个name连个地址都没分配就往里装东西了。谁知道他地址在哪里, 要么你写成 char name[256];栈上分配 要么 name = (char*)malloc(s
- 2015-04-17 11:16回答 8 已采纳 ``` #include #include //逆序输出字符串 using namespace std; void print(const char a[],int size)
- 2015-04-30 22:30必胜虾的博客 将一个声明从右向左读,(*读作pointer to),则char * const p读作(p is a const pointer to char)即是:p是一个指向char型的常量指针,它不能指向其他字符串,但是字符串的内容可变。 const char *
- 2019-08-04 15:58AquilaEAG的博客 1.VS运行程序,出现“烫烫烫烫烫烫烫烫烫…” ...2. VS不可以char *p=“abcd” 注意:编译器是把"abcd"作为“abcd\0”来处理的,有五个字符 为什么要加上’\0’?,‘\0’代表空格符,在字符串结尾加...
- 2021-08-19 16:12一个山里的少年的博客 这是定义了一个指向字符的指针常量,即str的指向不能被修改,但是可以修改指针所指向的内容。 我们可以通过代码来验证修改str指向的内容: #include<iostream> using namespace std; int main() { char ...
- 2022-03-19 22:01回答 2 已采纳 你题目的解答代码如下: #include <stdio.h> #include <string.h> #include <stdlib.h> int compar
- 2021-06-06 10:41deepin_flawless的博客 strcat() 函数将 src 字符串附加到 dest 字符串,覆盖 dest 末尾的终止空字节('\0'), 然后添加一个终止空字节。 字符串不能重叠,dest 字符串必须有足够的空间用于结果。 如果dest不够大,程序行为是不可预测的;...
- 没有解决我的问题, 去提问