aegisub卡拉ok特效脚本:两道C语言指针问题

来源:百度文库 编辑:高校问答 时间:2024/04/28 20:15:48
15
int n, *k=&n;
scanf("%d",k);printf("%d\n",*k)
以上内容是利用指针变量k读写变量n中的内容
*k=&n是什么意思
printf("%d\n",*k)是什么意思
*k是什么意思
17
#include<stdio.h> int sstrcmp(char *s ,char *t)
{while(*s&&*t&&*s==*t){s--;t++;}return *s-*t}
int sstrcmp(char *s ,char *t)是什么意思
(*s&&*t&&*s==*t)是什么意思
{s--;t++;}return *s-*t}是什么意思

int *k=&n;
相当于int *k;
*k=n;或k=&n;
就是定义一个指针k并使k指向n.
printf("%d\n",*k)
就是输出指针k所指向的数,这里就是n.
*k 表示k是指针,也表示指针k所指向得数.
/ ***************************************/
/**************************************/
int sstrcmp(char *s ,char *t) 是定义了一个函数sstrcmp,从名字上看是个比较字符数组函数. 前面的int 表示该函数返回值为整型,也可以省略,则表示无返回值.
(char *s ,char *t) 表示函数有两个指针参数s和t.

&& 是逻辑运算符,是与运算.
(*s&&*t&&*s==*t)表示s指向的数不为零(因为实在循环语句的判定条件,如while(n) do{}表示如果n不为零,则do)并且t指向的数不为零并且两个数相等.

{s--;t++;}return *s-*t}
在此函数前,肯定有两个字符数组s和t.也可以说是s和t是指向两个字符串的指针.那么s--表示指针前移一位,当然t++表示指针后移一位(指针指向当前所至字符的下一个).

*s-*t 表示s所指字符减去t所指字符(即它们的ASII码相减), return *s-*t ; 返回二者之差(整型的)

{s--;t++;}return *s-*t}是什么意思 大括号不能拆开来看的,要看一对里面的内容.
{while(*s&&*t&&*s==*t){s--;t++;}return *s-*t}
最好这样些
{while(*s&&*t&&*s==*t){s--;t++;}
return *s-*t;
}这样层次比较清晰.
这都是基础的问题.我也使刚学的.
int *k=&n;
相当于int *k;
*k=n;或k=&n;
就是定义一个指针k并使k指向n.
printf("%d\n",*k)
就是输出指针k所指向的数,这里就是n.
*k 表示k是指针,也表示指针k所指向得数.
/ ***************************************/
/**************************************/
int sstrcmp(char *s ,char *t) 是定义了一个函数sstrcmp,从名字上看是个比较字符数组函数. 前面的int 表示该函数返回值为整型,也可以省略,则表示无返回值.
(char *s ,char *t) 表示函数有两个指针参数s和t.

&& 是逻辑运算符,是与运算.
(*s&&*t&&*s==*t)表示s指向的数不为零(因为实在循环语句的判定条件,如while(n) do{}表示如果n不为零,则do)并且t指向的数不为零并且两个数相等.

{s--;t++;}return *s-*t}
在此函数前,肯定有两个字符数组s和t.也可以说是s和t是指向两个字符串的指针.那么s--表示指针前移一位,当然t++表示指针后移一位(指针指向当前所至字符的下一个).

*s-*t 表示s所指字符减去t所指字符(即它们的ASII码相减), return *s-*t ; 返回二者之差(整型的)

{s--;t++;}return *s-*t}是什么意思 大括号不能拆开来看的,要看一对里面的内容.
{while(*s&&*t&&*s==*t){s--;t++;}return *s-*t}
最好这样些
{while(*s&&*t&&*s==*t){s--;t++;}
return *s-*t;
}这样层次比较清晰.
这都是基础的问题.我也使刚学的.
int *k=&n;
相当于int *k;
*k=n;或k=&n;
就是定义一个指针k并使k指向n.
printf("%d\n",*k)
就是输出指针k所指向的数,这里就是n.
*k 表示k是指针,也表示指针k所指向得数.
/ ***************************************/
/**************************************/
int sstrcmp(char *s ,char *t) 是定义了一个函数sstrcmp,从名字上看是个比较字符数组函数. 前面的int 表示该函数返回值为整型,也可以省略,则表示无返回值.
(char *s ,char *t) 表示函数有两个指针参数s和t.

&& 是逻辑运算符,是与运算.
(*s&&*t&&*s==*t)表示s指向的数不为零(因为实在循环语句的判定条件,如while(n) do{}表示如果n不为零,则do)并且t指向的数不为零并且两个数相等.

{s--;t++;}return *s-*t}
在此函数前,肯定有两个字符数组s和t.也可以说是s和t是指向两个字符串的指针.那么s--表示指针前移一位,当然t++表示指针后移一位(指针指向当前所至字符的下一个).

*s-*t 表示s所指字符减去t所指字符(即它们的ASII码相减), return *s-*t ; 返回二者之差(整型的)

{s--;t++;}return *s-*t}是什么意思 大括号不能拆开来看的,要看一对里面的内容.
{while(*s&&*t&&*s==*t){s--;t++;}return *s-*t}
最好这样些
{while(*s&&*t&&*s==*t){s--;t++;}
return *s-*t;
}这样层次比较清晰.
这都是基础的问题.我也使刚学的.
int *k=&n;
相当于int *k;
*k=n;或k=&n;
就是定义一个指针k并使k指向n.
printf("%d\n",*k)
就是输出指针k所指向的数,这里就是n.
*k 表示k是指针,也表示指针k所指向得数.
/ ***************************************/
/**************************************/
int sstrcmp(char *s ,char *t) 是定义了一个函数sstrcmp,从名字上看是个比较字符数组函数. 前面的int 表示该函数返回值为整型,也可以省略,则表示无返回值.
(char *s ,char *t) 表示函数有两个指针参数s和t.

&& 是逻辑运算符,是与运算.
(*s&&*t&&*s==*t)表示s指向的数不为零(因为实在循环语句的判定条件,如while(n) do{}表示如果n不为零,则do)并且t指向的数不为零并且两个数相等.

{s--;t++;}return *s-*t}
在此函数前,肯定有两个字符数组s和t.也可以说是s和t是指向两个字符串的指针.那么s--表示指针前移一位,当然t++表示指针后移一位(指针指向当前所至字符的下一个).

*s-*t 表示s所指字符减去t所指字符(即它们的ASII码相减), return *s-*t ; 返回二者之差(整型的)

{s--;t++;}return *s-*t}是什么意思 大括号不能拆开来看的,要看一对里面的内容.
{while(*s&&*t&&*s==*t){s--;t++;}return *s-*t}
最好这样些
{while(*s&&*t&&*s==*t){s--;t++;}
return *s-*t;
}这样层次比较清晰.
这都是基础的问题.我也使刚学的.
int *k=&n;
相当于int *k;
*k=n;或k=&n;
就是定义一个指针k并使k指向n.
printf("%d\n",*k)
就是输出指针k所指向的数,这里就是n.
*k 表示k是指针,也表示指针k所指向得数.
/ ***************************************/
/**************************************/
int sstrcmp(char *s ,char *t) 是定义了一个函数sstrcmp,从名字上看是个比较字符数组函数. 前面的int 表示该函数返回值为整型,也可以省略,则表示无返回值.
(char *s ,char *t) 表示函数有两个指针参数s和t.

&& 是逻辑运算符,是与运算.
(*s&&*t&&*s==*t)表示s指向的数不为零(因为实在循环语句的判定条件,如while(n) do{}表示如果n不为零,则do)并且t指向的数不为零并且两个数相等.

{s--;t++;}return *s-*t}
在此函数前,肯定有两个字符数组s和t.也可以说是s和t是指向两个字符串的指针.那么s--表示指针前移一位,当然t++表示指针后移一位(指针指向当前所至字符的下一个).

*s-*t 表示s所指字符减去t所指字符(即它们的ASII码相减), return *s-*t ; 返回二者之差(整型的)

{s--;t++;}return *s-*t}是什么意思 大括号不能拆开来看的,要看一对里面的内容.
{while(*s&&*t&&*s==*t){s--;t++;}return *s-*t}
最好这样些
{while(*s&&*t&&*s==*t){s--;t++;}
return *s-*t;
}这样层次比较清晰.
这都是基础的问题.我也使刚学的.

15
int n, *k=&n;
scanf("%d",k);printf("%d\n",*k)
以上内容是利用指针变量k读写变量n中的内容
*k=&n是把n的地址赋值给指针变量k,
printf("%d\n",*k)是打印指针变量k所指向的内容,即n;
*k是取指针k所指向的内容,即n的内容。

17
#include<stdio.h>
int sstrcmp(char *s ,char *t)
{
while(*s&&*t&&*s==*t)
{s--;t++;}
return *s-*t;
}
int sstrcmp(char *s ,char *t)是函数头,参数为s和t字符串,比较两个字符串。
(*s&&*t&&*s==*t)是先比较s和t的当前偏移量的值是不是为零且相同。
{s--;t++;}return *s-*t}是在{}中的语句是让字符串偏移,return语句是返回两个字符串比较的结果。
(这里的偏移语句是s--;t++;这个函数比较的s的逆向和t的正向比较)

*k 就是 K所指像地址中的实值
*K=&N 就是定义了指针变量 K 指像 N
你初学吧

好好看看书 这些都是基本的

我也是初学
后面的都是函数的调用 里面的是参数

int *k=&n;
相当于int *k;
*k=n;或k=&n;
就是定义一个指针k并使k指向n.
printf("%d\n",*k)
就是输出指针k所指向的数,这里就是n.
*k 表示k是指针,也表示指针k所指向得数.
/ ***************************************/
/**************************************/
int sstrcmp(char *s ,char *t) 是定义了一个函数sstrcmp,从名字上看是个比较字符数组函数. 前面的int 表示该函数返回值为整型,也可以省略,则表示无返回值.
(char *s ,char *t) 表示函数有两个指针参数s和t.

&& 是逻辑运算符,是与运算.
(*s&&*t&&*s==*t)表示s指向的数不为零(因为实在循环语句的判定条件,如while(n) do{}表示如果n不为零,则do)并且t指向的数不为零并且两个数相等.

{s--;t++;}return *s-*t}
在此函数前,肯定有两个字符数组s和t.也可以说是s和t是指向两个字符串的指针.那么s--表示指针前移一位,当然t++表示指针后移一位(指针指向当前所至字符的下一个).

*s-*t 表示s所指字符减去t所指字符(即它们的ASII码相减), return *s-*t ; 返回二者之差(整型的)

{s--;t++;}return *s-*t}是什么意思 大括号不能拆开来看的,要看一对里面的内容.
{while(*s&&*t&&*s==*t){s--;t++;}return *s-*t}
最好这样些
{while(*s&&*t&&*s==*t){s--;t++;}
return *s-*t;
}这样层次比较清晰.
这都是基础的问题.我也使刚学的.