c语言
whtujingjing
这个作者很懒,什么都没留下…
展开
-
为什么while (*s++ = *t++);这句代码的作用是复制字符串?
1、为什么while (*s++ = *t++);这句代码的作用是复制字符串? 测试代码如上, 可以这么理解: 1)、a = *t++;表示a = *t;接着++t; 同理,*s++ = a;表示*s = a;之后++s; 所以*s++ = *t++;等价于, a = *t; ++t; *s = a; ++s; 所以上面的语句每执行一次,便把当前*t的值赋给*s,接着地址t和s前原创 2017-04-08 16:51:26 · 5865 阅读 · 2 评论 -
scanf 清缓冲区的问题
scanf 清缓冲区的问题 1、以%c 获取char字符测试如下: %c 获取一个字符,这里在终端输入一个a +<回车> 程序默认循环了两次。本来自己是想输入一个a,显示一个a,循环只执行一次就等在那里,这里明显第二次自动把<回车>当成字符获取了。2、%c获取键值时;加了while(getchar() != ‘\n’);这句清缓存操作,就跳过了’\n’ <回车>的操作.最后只从缓冲区调原创 2017-04-08 16:27:48 · 2851 阅读 · 0 评论 -
数组名表示指针常量的问题
6.若已定义 char s[10]; 则在下面表达式中不表示s[1]的地址的是 B 。 A、s+1 B、 s++ C、&s[0]+1 D、 &s[1] s是数组名,相当于数组首地址,是一个指针常量,这里s++相当于调用了s=s+1这个赋值表达式;对一个指针常量来进行赋值操作是不合法的。 这里注意数组名s和&s的区别。原创 2017-04-08 17:03:25 · 2221 阅读 · 0 评论 -
sizeof( )与strlen( )测数组的差异分析
2、对两个数组a和b进行如下初始化 char a[]=“ABCDEF”; char b[]={ ‘A’,’B’,’C’,’D’,’E’,’F’}; 数组长度如何判断?#include<stdio.h> #include<string.h>int main(int argc, const char *argv[]) { char a[]="ABCDEF"; char b原创 2017-04-08 17:09:51 · 404 阅读 · 0 评论