24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 851  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

hdy523331137

银虫 (小有名气)

[求助] 关于c语言i指针问题 已有3人参与

#include<stdio.h>
#include<string.h>
int main()
{void sort(char *name[],int n);
void print(char *name[],int n);
char *name[]={"Follow","Bie","Grewds","FOR","Cfefe"};
int n=5;
sort(name, n);
print(name, n);
return 0;}
void sort(char *name[],int n)
{
char *temp;
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0)
k=j;
if(k!=i)
{temp=name;name=name[k];name[k]=temp;}}}
void print(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",name);}
if(strcmp(name[k],name[j])>0) 为什么不换成if(strcmp(*name[k],*name[j])>0)?name[k]和name[j]不是只表示地址吗?怎么会表示字符串呢?
将{temp=name;name=name[k];name[k]=temp;}换成{*temp=*name;*name=*name[k];*name[k]=*temp;}为什么不行呢?谢谢各位大侠了
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxu2009

至尊木虫 (正式写手)

【答案】应助回帖

完整代码如下:
CODE:
#include<stdio.h>
#include<string.h>
int main()
{
         void sort(char *name[],int n);
    void print(char *name[],int n);
    char *name[]={"Follow","Bie","Grewds","FOR","Cfefe"};
    int n=5;
    sort(name, n);
    print(name, n);
    return 0;
}
void sort(char *name[],int n)
{
    char *temp;
    int i,j,k;
    for(i=0;i<n-1;i++)
    {
       k=i;
       for(j=i+1;j<n;j++)
       if(strcmp(name[k],name[j])>0)
       k=j;
       if(k!=i)
       {
               temp=*name;*name=name[k];name[k]=temp;
             }
          }
          }
void print(char *name[],int n)
{
    int i;
    for(i=0;i<n;i++)
    printf("%s\n",name[i]);
}

7楼2014-12-21 12:12:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

gongweixue

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
name声明的时候是字符指针的数组,也就是一个数组里面存的都是字符指针,所以name[k]里面就是char*

[ 发自小木虫客户端 ]
2楼2014-12-21 03:27:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongweixue

新虫 (初入文坛)

【答案】应助回帖

引用回帖:
2楼: Originally posted by gongweixue at 2014-12-21 03:27:21
name声明的时候是字符指针的数组,也就是一个数组里面存的都是字符指针,所以name里面就是char*

而如果你去看标准库的话,strcmp应该是接受字符指针类型的参数。
在c里面,是不存在字符串类型的,仅仅是用一个字符指针去指向一个存储于常量区域的一串字符序列,这和字符数组也有区别。但是在c语言中,在函数的参数传递的时候,可以把字符指针和字符数组首地址和字符数组名当成一回事,如何实现是编译器的职责,我们不用担心。

[ 发自小木虫客户端 ]
3楼2014-12-21 03:58:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongweixue

新虫 (初入文坛)

【答案】应助回帖

引用回帖:
3楼: Originally posted by gongweixue at 2014-12-21 03:58:05
而如果你去看标准库的话,strcmp应该是接受字符指针类型的参数。
在c里面,是不存在字符串类型的,仅仅是用一个字符指针去指向一个存储于常量区域的一串字符序列,这和字符数组也有区别。但是在c语言中,在函数的 ...

另外,*是解引用操作符,语义上来说是对右侧数据类型指针的一个操作,也就是对char*进行取内容,结果是char,temp是指针类型,所以不兼容。即使temp是char类型的,最后也只是对第一个字符进行交换而已。

[ 发自小木虫客户端 ]
4楼2014-12-21 04:02:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿郑州大学材料与化工085600,求调剂 +6 吃的不少 2026-04-02 6/300 2026-04-02 20:07 by dongzh2009
[考研] 316求调剂 +12 舟自梗 2026-04-01 16/800 2026-04-02 17:33 by zzsw+
[考研] 413求调剂 +3 柯某某 2026-03-31 3/150 2026-04-02 16:59 by zzsw+
[考研] 农学考研求调剂 +3 dkdkxm 2026-04-01 3/150 2026-04-02 16:04 by wangjagri
[考研] 一志愿华中农业071010,总分320求调剂 +5 困困困困坤坤 2026-04-02 5/250 2026-04-02 15:51 by wangjagri
[考研] 材料调剂 +6 一样YWY 2026-04-02 6/300 2026-04-02 14:56 by liu823948201
[考研] 材料专业求调剂 +10 月月鸟木 2026-04-01 10/500 2026-04-02 12:57 by wxiongid
[考研] 求调剂!生物与医药专硕 +4 逆转陆先生 2026-04-01 4/200 2026-04-02 11:51 by xiaoranmu
[考研] 327求调剂 +9 汲亦昊 2026-03-29 9/450 2026-04-02 11:44 by 运气yunqi
[考研] 324分 085600材料与化工 +20 呆鹅oor 2026-03-27 20/1000 2026-04-02 10:13 by oooqiao
[考研] 274求调剂 +8 薛定谔的虎。 2026-04-01 8/400 2026-04-02 09:21 by 晴空210210
[考研] 339求调剂,想调回江苏 +7 烤麦芽 2026-03-27 10/500 2026-04-01 21:35 by 495374996
[考研] 材料专业调剂 +5 啦啦啦哭 2026-03-31 6/300 2026-04-01 16:48 by JourneyLucky
[考研] 一志愿 南京航空航天大学 ,080500材料科学与工程学硕 +10 @taotao 2026-03-31 11/550 2026-04-01 09:43 by xiayizhi
[考研] 求调剂,一志愿北林食品与营养095500,301分,已过六级,有科研经历 +4 快乐储蓄罐 2026-03-31 4/200 2026-04-01 09:26 by JourneyLucky
[考研] 0856调剂 +7 曲听筠 2026-03-30 7/350 2026-04-01 08:51 by JourneyLucky
[考研] 土木304求调剂 +5 顶级擦擦 2026-03-31 5/250 2026-04-01 08:15 by fdcxdystjk¥
[考研] 一志愿a区211,085601-307分求调剂 +10 党嘉豪 2026-03-31 23/1150 2026-03-31 18:44 by JourneyLucky
[考研] 0856 335分 +9 cccchenso 2026-03-29 9/450 2026-03-31 16:37 by lishahe
[考研] 289求调剂 +3 Acesczlo 2026-03-29 4/200 2026-03-31 14:48 by 热情沙漠
信息提示
请填处理意见