char *s char s[] 区别

#includevoidmain(){char*s;gets(s);puts(s);}程序在运行时可能会出错,原因是__指针变量s未赋初值____。答案是这样么?我觉是因... # include
void main( )
{ char *s;
gets(s);
puts(s);
}
程序在运行时可能会出错,原因是__指针变量s未赋初值____。

答案是这样么? 我觉是因为*s分配的内存空间不能更改
因为即使是在 对*s 做初始化之后运行还是报错哇!
展开
 我来答
仁昌爱娱乐
高粉答主

2019-11-10 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459855

向TA提问 私信TA
展开全部

char *s、char s[]区别为:内容修改不同、计算操作不同、指针性质不同。

一、内容修改不同

1、char *s:char *s因为指向常量,所以内容不能修改。

2、char s[]:char s[]因为指代内存中的变量区,所以内容能修改。

二、计算操作不同

1、char *s:char *s是一个指针类型,可以进行计算操作。

2、char s[]:char s[]不是一个声明的指针类型,不能进行正常指针的加减计算操作。

三、指针性质不同

1、char *s:char *s是一个字符指针。

2、char s[]:char s[]是一个字符数组指针

myloneisland
推荐于2017-09-06 · TA获得超过924个赞
知道小有建树答主
回答量:215
采纳率:83%
帮助的人:90.8万
展开全部
char *s中的s是指针,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。
char s[]中的s是数组首地址,而数组首地址对应着一块内存区域,其地址和容量在生命期里不会改变,只有数组的内容可以改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chocolatethins
推荐于2017-10-15 · TA获得超过231个赞
知道答主
回答量:38
采纳率:0%
帮助的人:30.1万
展开全部
首先你的程序要包含头文件<stdio.h>,因为你在程序中使用了库函数GETS()和PUTS(),其次,就是你提到的指针S初始化问题,GETS(S)是从键盘输入一个字符串赋给指针变量S所指向的变量(这个变量的地址就是指针S的值)~~你此处并未给指针变量S赋值,所以程序无法执行。
追问
改成这样还是报错 

#include "stdio.h"
#include "string.h"

void main( )
{ char *s="1111";
gets(s);
puts(s);
}
追答
S是指针变量,指针变量的值需要是同属性变量的地址,比方说你再定义一个CHAR A[10],将数组A的地址给S,即S=A(因为数组名就是这个数组的首地址),再运行下就可以了~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
EvenHHZ
2018-07-29 · 知道合伙人软件行家
EvenHHZ
知道合伙人软件行家
采纳数:13691 获赞数:18845
个人出版图书:《玩转Python网络爬虫》、《玩转Django2.0》

向TA提问 私信TA
展开全部
首先我们知道一点,*代表取值符。
其次,我们要明白一点,以为*p可指向以为数组,**p指向二维数组,***p指向三维数组......
最后()在不同的情况下有不同的含义。好现在开始讲解*char(**)与(char*)的区别
1、*char(**)应该表示一个指向二维数组的指针,其效果等同于一个三维数指针
2、(char*)我给出以下两种含义:
a、可定义一个字符型指针
b、将当前对象显示转换为字符指针类型
PS:希望对楼主有帮助。如有必要,希望楼主讲问题描述清楚,多放点代码进来,让我们知道这两句代码是在什么情况下的,因为往往不同环境下,相同代码有不同的含义。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2008-08-03 · TA获得超过266个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:264万
展开全部
一般的 指针char *a和 字符型数组char a[]完全没差别

char不同 指针指向的是char型的 但是++a后就是指向另一个char型数据了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式