Doodle 发表于 2020-11-11 14:45:59

小白求助下指针的一个小问题

本帖最后由 Doodle 于 2020-11-11 15:01 编辑

#include"stdio.h"
int main(){
char st,*ps;
int i;
printf("input a string:\n");
ps=st;
scanf("%s",ps);
for(i=0;ps!='\0';i++)
    if(ps=='k'){
       printf("there is a 'k' in the string\n");
       break;
    }
if(ps=='\0') printf("There is no 'k' in the string\n");
return 0;
}

小白问下定义了指针变量ps后将数组st首地址赋给指针后指针就可以以数组形式表达吗
例如上面代码
    if(ps=='k')
ps是指针,却可以写成ps[]https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

jackz007 发表于 2020-11-11 15:12:19

本帖最后由 jackz007 于 2020-11-11 15:17 编辑

      ps 是指向字符的指针,访问字符用 * ps 来表示。
#include <stdio.h>

int main(void){
      char st , * ps                                       ;
      int i , j                                                ;
      printf("input a string : ")                              ;
      scanf("%s" , st)                                       ;
      for(ps = st , j = 0 ; * ps ; ps ++) {
                if(* ps == 'k') {
                        printf("there is a 'k' in the string\n") ;
                        j ++                                     ;
                        break                                    ;
                }
      }
      if(! j) printf("There is no 'k' in the string\n")      ;
}

Doodle 发表于 2020-11-11 22:42:54

本帖最后由 Doodle 于 2020-11-11 22:45 编辑

https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

Doodle 发表于 2020-11-11 22:44:47

本帖最后由 Doodle 于 2020-11-11 22:47 编辑

#include"stdio.h"
int main(){
char st,*ps;
int i;
printf("input a string:\n");
ps=st;
scanf("%s",ps);
for(i=0;ps!='\0';i++)
    if(ps=='k'){
       printf("there is a 'k' in the string\n");
       break;
    }
if(ps=='\0') printf("There is no 'k' in the string\n");
return 0;
}

这个是正确的代码
我的意思是定义指针p为何可以有p[]的形式出现https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif
页: [1]
查看完整版本: 小白求助下指针的一个小问题