问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言指针输入

发布网友 发布时间:2022-04-29 15:54

我来回答

5个回答

热心网友 时间:2023-10-17 04:20

看来楼主没有理解指针必须要初始化这一定律啊。
char
*str;
str="l
love
china";
指针
str
是指向字符的,也就是指向了一个地址
赋值为str="l
love
china"
这里指针str的值也就是字符串
"l
love
china"
的首地址
而输出的时候puts(str);
puts中的参数当然也是首地址了,如果puts的参数是字符数组,那实际上也是地址,因为数组的名字就是数组第一个元素的地址。当地址是字符串的地址时,指针会自动下移一个位置。直到遇到'\0'为止
而下面这个
char
*str;
scanf("%s",str);
指针没有初始化,所以是不对滴。
其实在C语言中想要动态输入字符串(也就是不浪费空间,还是很麻烦的),直到怎么回事就行,不必太纠结这个问题

热心网友 时间:2023-10-17 04:20

你定义了一个指针s,却不让他指向什么,scanf("%d",s+i);当人会有问题
#include
int
main()
{
int
a,b,i;
int
*s;
int
p[8];
s
=
p;
for(i=0;i<8;i++)
scanf("%d",s+i);
for(i=0,a=1;i<7;i++)
{
a=i+1;
for(;a<8;a++)
if
(*(s+i)<*(s+a))
{b=*(s+i);*(s+i)=*(s+a);*(s+a)=b;}
}
for(i=0;i<8;i++)
printf("%d",*(s+i));
return
0;
}
指针一定要指向一个地址

热心网友 时间:2023-10-17 04:21

#include
int
main()
{
char
str1[100]
=
{0};
char
*str
=
str1;
scanf("%s",str);
puts(str);
return
0;
}
改成上面这样就好了.
因为指针只是一个地址,而指针指向的是一个字符串.需要在内存里面开辟一片空间,不然就会报错0x00000005.

热心网友 时间:2023-10-17 04:20

看来楼主没有理解指针必须要初始化这一定律啊。
char
*str;
str="l
love
china";
指针
str
是指向字符的,也就是指向了一个地址
赋值为str="l
love
china"
这里指针str的值也就是字符串
"l
love
china"
的首地址
而输出的时候puts(str);
puts中的参数当然也是首地址了,如果puts的参数是字符数组,那实际上也是地址,因为数组的名字就是数组第一个元素的地址。当地址是字符串的地址时,指针会自动下移一个位置。直到遇到'\0'为止
而下面这个
char
*str;
scanf("%s",str);
指针没有初始化,所以是不对滴。
其实在C语言中想要动态输入字符串(也就是不浪费空间,还是很麻烦的),直到怎么回事就行,不必太纠结这个问题

热心网友 时间:2023-10-17 04:21

scanf("%s",str);
应该是scanf("%s",&str);
地址要叫上&符号
str实际上是字符串的地址,对其进行引用加&,对内容引用加*

热心网友 时间:2023-10-17 04:20

你定义了一个指针s,却不让他指向什么,scanf("%d",s+i);当人会有问题
#include
int
main()
{
int
a,b,i;
int
*s;
int
p[8];
s
=
p;
for(i=0;i<8;i++)
scanf("%d",s+i);
for(i=0,a=1;i<7;i++)
{
a=i+1;
for(;a<8;a++)
if
(*(s+i)<*(s+a))
{b=*(s+i);*(s+i)=*(s+a);*(s+a)=b;}
}
for(i=0;i<8;i++)
printf("%d",*(s+i));
return
0;
}
指针一定要指向一个地址

热心网友 时间:2023-10-17 04:22

str仅仅是一个没有初始化的指针,接下来需要动态分配内存来存放输入的字符串才可以

热心网友 时间:2023-10-17 04:21

#include
int
main()
{
char
str1[100]
=
{0};
char
*str
=
str1;
scanf("%s",str);
puts(str);
return
0;
}
改成上面这样就好了.
因为指针只是一个地址,而指针指向的是一个字符串.需要在内存里面开辟一片空间,不然就会报错0x00000005.

热心网友 时间:2023-10-17 04:21

scanf("%s",str);
应该是scanf("%s",&str);
地址要叫上&符号
str实际上是字符串的地址,对其进行引用加&,对内容引用加*

热心网友 时间:2023-10-17 04:22

str仅仅是一个没有初始化的指针,接下来需要动态分配内存来存放输入的字符串才可以

热心网友 时间:2023-10-17 04:20

看来楼主没有理解指针必须要初始化这一定律啊。
char
*str;
str="l
love
china";
指针
str
是指向字符的,也就是指向了一个地址
赋值为str="l
love
china"
这里指针str的值也就是字符串
"l
love
china"
的首地址
而输出的时候puts(str);
puts中的参数当然也是首地址了,如果puts的参数是字符数组,那实际上也是地址,因为数组的名字就是数组第一个元素的地址。当地址是字符串的地址时,指针会自动下移一个位置。直到遇到'\0'为止
而下面这个
char
*str;
scanf("%s",str);
指针没有初始化,所以是不对滴。
其实在C语言中想要动态输入字符串(也就是不浪费空间,还是很麻烦的),直到怎么回事就行,不必太纠结这个问题

热心网友 时间:2023-10-17 04:20

你定义了一个指针s,却不让他指向什么,scanf("%d",s+i);当人会有问题
#include
int
main()
{
int
a,b,i;
int
*s;
int
p[8];
s
=
p;
for(i=0;i<8;i++)
scanf("%d",s+i);
for(i=0,a=1;i<7;i++)
{
a=i+1;
for(;a<8;a++)
if
(*(s+i)<*(s+a))
{b=*(s+i);*(s+i)=*(s+a);*(s+a)=b;}
}
for(i=0;i<8;i++)
printf("%d",*(s+i));
return
0;
}
指针一定要指向一个地址

热心网友 时间:2023-10-17 04:21

#include
int
main()
{
char
str1[100]
=
{0};
char
*str
=
str1;
scanf("%s",str);
puts(str);
return
0;
}
改成上面这样就好了.
因为指针只是一个地址,而指针指向的是一个字符串.需要在内存里面开辟一片空间,不然就会报错0x00000005.

热心网友 时间:2023-10-17 04:21

scanf("%s",str);
应该是scanf("%s",&str);
地址要叫上&符号
str实际上是字符串的地址,对其进行引用加&,对内容引用加*

热心网友 时间:2023-10-17 04:22

str仅仅是一个没有初始化的指针,接下来需要动态分配内存来存放输入的字符串才可以

热心网友 时间:2023-10-17 04:20

看来楼主没有理解指针必须要初始化这一定律啊。
char
*str;
str="l
love
china";
指针
str
是指向字符的,也就是指向了一个地址
赋值为str="l
love
china"
这里指针str的值也就是字符串
"l
love
china"
的首地址
而输出的时候puts(str);
puts中的参数当然也是首地址了,如果puts的参数是字符数组,那实际上也是地址,因为数组的名字就是数组第一个元素的地址。当地址是字符串的地址时,指针会自动下移一个位置。直到遇到'\0'为止
而下面这个
char
*str;
scanf("%s",str);
指针没有初始化,所以是不对滴。
其实在C语言中想要动态输入字符串(也就是不浪费空间,还是很麻烦的),直到怎么回事就行,不必太纠结这个问题

热心网友 时间:2023-10-17 04:20

你定义了一个指针s,却不让他指向什么,scanf("%d",s+i);当人会有问题
#include
int
main()
{
int
a,b,i;
int
*s;
int
p[8];
s
=
p;
for(i=0;i<8;i++)
scanf("%d",s+i);
for(i=0,a=1;i<7;i++)
{
a=i+1;
for(;a<8;a++)
if
(*(s+i)<*(s+a))
{b=*(s+i);*(s+i)=*(s+a);*(s+a)=b;}
}
for(i=0;i<8;i++)
printf("%d",*(s+i));
return
0;
}
指针一定要指向一个地址

热心网友 时间:2023-10-17 04:21

#include
int
main()
{
char
str1[100]
=
{0};
char
*str
=
str1;
scanf("%s",str);
puts(str);
return
0;
}
改成上面这样就好了.
因为指针只是一个地址,而指针指向的是一个字符串.需要在内存里面开辟一片空间,不然就会报错0x00000005.

热心网友 时间:2023-10-17 04:21

scanf("%s",str);
应该是scanf("%s",&str);
地址要叫上&符号
str实际上是字符串的地址,对其进行引用加&,对内容引用加*

热心网友 时间:2023-10-17 04:22

str仅仅是一个没有初始化的指针,接下来需要动态分配内存来存放输入的字符串才可以
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
intel 英特尔 酷睿 i5-9400F CPU 2.9GHz 6核6线程-详细介绍 vivo手机越用网络越慢 怎么检测 二手苹果电脑交易注意买二手苹果笔记本电脑应注意什么 比如我买一个二手笔记本卖家笔记本预装正版win10的话把他账号注销登录我... 二手苹果笔记本怎么更改账户 军婚假期有多少天 金立e6mini开机出现el 甘肃基层卫生主要内容 甘肃基层医疗卫生系统怎么撤销处方 天津市选调生通过面试了不去会怎么样 c语言的指针怎么输入 C语言里的指针符号,就是那个五角的星号怎么打出来?为什么用shift+8打出来是六角的? c语言中 指针变量的星号*怎么打 c语言*怎么打出来 这个符号什么意思 手机怎么做影视剪辑 手机怎么制作影视剪辑 见到自己喜欢的人会心疼,但见不到却更加痛 为什么?? 看到心爱的人痛苦自己还想帮他分担..但自己的心痛呢?谁来分担呢? 为什么我一想到我喜欢的人心就会很痛? 看到自己心爱的人受伤害,你心痛吗? 心爱的人,不爱自己,一看到她我就心痛,不想去面对,我该怎么办? 为什么看见我喜欢的人伤心我会很难过?十几年了看见她难过、我为什么还是这样难受? 为什么每次看到她难过我都会心疼得快要碎掉 为什么看到心爱的人难过自己心里也会异常伤心 为什么当我看见自己喜欢的人的时候,会莫名的心痛? 为什么心爱的人伤心。。。自己心痛的要死。。怎么解决? 为什么看见自己喜欢的人心情不好自己也会很伤心? 为什么看到喜欢我的男人难过了我也会很伤心? 为什么要心爱的人受伤自己也会心痛? 关于看到自己最爱的人发伤感说说自己心疼的说说 C语言结构体中的指向符号怎么打的? 卍↗这两个符号怎么打?拜托各位了 3Q 初学c++,弄不明白指针符号*跟&到底怎么用?&不是引用吗?程序里都看不太明白,请教详解,谢谢! 我们是做销售的,是业绩团队,我们团队名叫朝阳,急需要一个口号 怎么查美版苹果手机的激活时间?以及是不是翻新还是全新的?急急急 有关团队名称和口号 起队名,口号 美版苹果保修期是多长时间?帮忙查询苹果手机是不是翻新机还有355877063359923 谁有更好的办法帮我恢复手机桌面无删的软件?在手机浏览器里面下载的软件,不小心删除了,不知道怎么恢复 减发国债为什么是紧缩性财政政策 有士气的队名和口号,急用啊,我们是一个团队,帮忙想一个! 我的嗓子偏左边一点,经常发干,发痒,喝点水就好了,一会又这样,无线循环,右边没事,就是一边,很奇怪 发行公债是紧缩还是扩张 拉丁舞的队名和口号比如说成功队 求问缩少国债发行量是紧缩性财政政策吗 在线速求`《团队名称.团队口号》 送分了!!!20分 急求!向阳班起什么口号比较好?不要小学水平的 excel 计算算数平均值 苹果手机美版过保修期可以维修吗 一年级运动会口号,童心飞扬 健康成长,队名起什么好