首页
社区
课程
招聘
[旧帖] 一个非常简单的C程序,由于小弟刚刚学C,有个问题百思不得其解。望各位指教。 0.00雪花
发表于: 2009-7-31 11:09 4096

[旧帖] 一个非常简单的C程序,由于小弟刚刚学C,有个问题百思不得其解。望各位指教。 0.00雪花

2009-7-31 11:09
4096
#include <stdio.h>
#define PASSWORD "1234567"
int verify_password (char *password)
{
int authenticated;
authenticated=strcmp(password,PASSWORD);
return authenticated;
}

main()
{
int valid_flag=0;
char password[1024];
while(1)
{
printf("please input password: ");
scanf("%s",password);
valid_flag = verify_password(password);
if(valid_flag)
{
printf("incorrect password!\n\n");
}
else
{
printf("Congratulation! You have passed the verification!\n");
break;
}
}
}


程序的第三行 int verify_password (char *password)
为什么是*password?这个password不是指针变量吗??下面带入verify_password是数组啊。。
这是怎么回事?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 70
活跃值: (74)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
好好看看C语言书吧
2009-7-31 11:13
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
要把password指向password啊
2009-7-31 11:25
0
雪    币: 261
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
char password[1024] 中的password是 &password[0]
呃。。。这样解释应该没错的
2009-7-31 11:27
0
雪    币: 1041
活跃值: (1228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多看书
先看看 这本
http://download.csdn.net/source/834514

讨论程序问题 还是去csdn
2009-7-31 11:51
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
严重犯晕,数组名不是指针啊?
2009-7-31 13:40
0
雪    币: 152
活跃值: (106)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
就是..这个问题太复杂了...我也不知道怎么弄...
2009-7-31 13:55
0
雪    币: 172
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
char *password 这个 是定义password 是指针变量。如果不定义那引入的password 不还是指针变量吗?
2009-7-31 14:16
0
雪    币: 132
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那个是形参,定义的时候为了然编译器知道 需要传递一个数组 或指针过去 ,数组都能够用指针来表示。 你可以换成 char passsword[]  这样  效果是一样的。
2009-7-31 18:08
0
雪    币: 20
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
同意2楼,好好理解指针与数组的关系。
2009-7-31 20:58
0
雪    币: 157
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
int verify_password (char *password)
{
  int authenticated;
  authenticated=strcmp(password,PASSWORD);
  return authenticated;
}
可以写成
int verify_password (char password[])
{
  return strcmp(password,PASSWORD);
}
另外, 标准C中 strcmp是在#include <string.h>中的。
2009-7-31 21:03
0
雪    币: 313
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
5楼的解释得不错的啊
2009-7-31 21:19
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
传送的是数组的首地址
2009-8-1 13:05
0
雪    币: 4
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
指针你还没理解...
2009-8-1 13:51
0
游客
登录 | 注册 方可回帖
返回
//