![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C之初体验
NowDoIT
这个作者很懒,什么都没留下…
展开
-
第一章 字符和字符串
题目1-5都是错误的,请问为什么?1. strcat (string,’!’)2. char *string; if(string == “value”);3. char a[14];a = “Hello,World!”;4. char *str1 = “Hello,”;char *str2 = “World”;char *str3 = strcat(str1,str2);5. char a[] = “string test”;char *p = “stri原创 2010-12-11 11:24:00 · 289 阅读 · 0 评论 -
C里面不容忽视的小细节
1. 三目运算符的恒等于符号的“副作用”#include int main(int argc,char *argv[]){ int a = 1; int b = 2; int c = 3; a = b>c?b:c; //取bc二者最大值,无可厚非 a = 0?b:c; //取c的值 a = 1?b:c; //取b的值 a = b==c; //若b==c,则 a = 1;反正 a=0;}原创 2011-02-15 11:08:00 · 332 阅读 · 0 评论 -
C中printf常用的打印格式说明
%a 浮点数、十六进制数字和p-记数法(C99)%A 浮点数、十六进制数字和p-记法(C99)%c 一个字符 %d 有符号十进制整数 %e 浮点数、e-记数法%E 浮点数、E-记数法%f 浮点数、十进制记数法 %g 根据数值不同自动选择%f或%e.%G 根据数值不同自动选择%f或%e.%i 有符号十进制数(与%d相同)%o 无符号八进制整数%p 指针 %s 字符串%u 无符号十进转载 2011-02-22 18:02:00 · 563 阅读 · 0 评论 -
计算机中的原码反码和补码
首先明确两点1.正数的原码、反码、补码都是一样的2.计算机对数值的存储中,对于负数,是以补码的形式进行存储的ok,接下来在好好研究下原码、反码、补码以及有符号、无符号。原创 2011-03-23 10:10:00 · 503 阅读 · 0 评论 -
getchar()为什么总是报错?
getchar()是一个接收屏幕输入的单个字符的命令,在使用中要注意的是,随时清空屏幕输入的缓冲区里面的字符,否则很容易出现未知的错误。所以,针对getchar(),要时刻记得在使用前 fflush(stdin) 或者再 getchar()一下,这样清空了缓冲区,避免不必要的问题。原创 2011-04-04 15:49:00 · 1022 阅读 · 0 评论 -
内存释放小例子,需要注意
代码如下:#include #include int main(void){ char *str; int i; for(i=0;i很显然,如果在代码tag A处没有释放内存的话,那势必造成内存不断的分配而无法释放,造成内存泄露。一定要注意,malloc和free是作为一起出现的!原创 2011-04-03 17:59:00 · 423 阅读 · 0 评论 -
大端模式 小端模式
简要记录一下,网络传输字节顺序会用得到!大端模式:数据的高字节存放在内存的低地址中;小端模式:数据的低字节存放在内存的低地址中。例子:数据0x1234,地址0x4000开始。大端模式:0x4000:120x4001:34小端模式:0x4000:340x4001:12原创 2011-04-25 10:58:00 · 368 阅读 · 0 评论 -
C语言中判断真假的值的选择
在C语言中,是这样规定的。值大于0,则表示程序执行成功。否则,表示程序执行失败。举例如下:#include#includeint main(int argc,char *argv){ if(0) printf("ok!!\n");原创 2011-08-01 15:43:01 · 2004 阅读 · 0 评论 -
简单记录事件发生的时间
可以使用下面的例子int my_time = (int)time(NULL);这样就可以简单的记录了时间点。原创 2011-08-02 09:50:28 · 425 阅读 · 0 评论 -
C語言運算符優先級列表
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)/函数转载 2011-08-05 10:30:34 · 336 阅读 · 0 评论 -
C语言运算符优先级 详细列表
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)转载 2011-09-13 17:12:52 · 337 阅读 · 0 评论 -
Unix和Windows平台设置环境变量的区别
export和set$和%变量连接使用:和使用;原创 2011-09-15 14:48:20 · 333 阅读 · 0 评论 -
C语言实现字符串反转的方法
C语言实现字符串反转,是C语言面试中比较常见的一个问题,这里提供一种实现方法!供大家参考!折半替换法,即定义一头一尾指针,同时向中间走,二者互换,相遇即为互换完毕!char *consver(char *str){ char temp; char *s1 = str; char *s2 = str+strlen(str)-1; for(;s1 < s2;s1+原创 2011-01-11 10:58:00 · 3324 阅读 · 0 评论 -
定义宏,实现比较a,b的大小。不允许使用>,<号。
二者相减,使最高位与1相与,来进行验证。demo:#include #include #define MAX(a,b) ((((int)a - (int)b) & (0x1> 31)int main(int argc,char **argv){ int a=-3; int b=-2; printf("a is %x,b is %x,a-b is %x原创 2012-02-01 14:57:25 · 1003 阅读 · 1 评论 -
C語言指針的小問題,面試題。
題目如下:#include #include int main(){ int a[2]={1,2}; int *ptr1=(int *)(&a+1); int *ptr2=(int *)((int )a+1); printf("%x,%x",ptr1[-1],*ptr2); getch(); return 0;}解答:&a 取得地址以原创 2012-02-10 11:05:18 · 979 阅读 · 0 评论 -
《C和指针》之“输入输出函数”总结
先来几个小的程序!/*Test 1*/#include #include int main(int argc,char *argv[]){ printf("%d",3.14); printf("%d",(int)3.14); return 0;}/*Test 2*/#include #include int main(int argc,char *argv[]){ char c; while(c != 'a') {原创 2011-01-25 15:09:00 · 597 阅读 · 0 评论 -
计算机基础之十进制/十六进制/二进制
定义下面几个变量,假设前提是int占2个字节,long占4个字节,char占1个字节!int i = 0x1234; //占用两个字节long l = 0x12345678; //占用4个字节char c = 0x12; //占用一个字节为什么int型定义成十六进制是4个数字呢?来普及一下基础知识,一步步的来看!首先,int型转化为二进制型,是什么概念?1个int字节转化为8个二进制位,比如int a=100;则a的二进制形式就是 25+24+22;也就是 0011 0100;看到没,int型原创 2011-01-24 17:27:00 · 685 阅读 · 0 评论 -
Unix/Linux 如何执行配置文件?
A. Unix/Linux 如何执行配置文件? . .profile原创 2010-12-11 12:50:00 · 552 阅读 · 0 评论 -
C语言谜题
1、下面的程序并不见得会输出 hello-std-out,你知道为什么吗?<br />#include <stdio.h><br />#include <unistd.h><br />int main()<br />{<br />while(1)<br />{<br />fprintf(stdout,"hello-std-out");<br />fprintf(stderr,"hello-std-err");<br />sleep(1);<br />}<br />return 0;<br />}<br />转载 2010-12-11 11:43:00 · 252 阅读 · 0 评论 -
C语言中的 . 和 -> 有什么区别?
如题所示,一直不得其解~还请高人赐教。原创 2010-12-13 09:18:00 · 443 阅读 · 0 评论 -
Windows 下容易遗忘的快捷键
1. 打开系统属性 Win + Break原创 2010-12-14 16:15:00 · 353 阅读 · 0 评论 -
Windows下环境变量入门学习
1.环境变量的设置有几种方式?设置环境变量有两种方式:第一种是在命令提示符运行窗口中设置;第二种是通过单击“我的电脑→属性→高级”标签的“环境变量”按钮设置。需要注意的是,第一种设置环境变量的方式只对当前运行窗口有效,关闭运行窗口后,设置就不起作用了,而第二种设置环境变量的方式则是永久有效。2.如何在命令提示符窗口中设置环境变量?在“开始→运行”框中输入“cmd”后按“确定”按钮,出现命令运行窗口。在命令提示符下输入“set”即可查看环境变量设置。要查看具体某个环境变量的设置,比如要查看path环境变量的设原创 2010-12-14 16:25:00 · 472 阅读 · 0 评论 -
如何定义使用十六进制数?有什么好处?
1.定义很简单,前面加上 0x就可以了。如下,int i = 0xF;int j = 0x2;按照十进制输出,当然就是用 %d 咯!2.优势 可以用在位运算比较多的时候; 可以用在分支情况比较多的时候,比如颜色等; 也可以用类似的枚举enum来实现。暂时就想到这么多!欢迎各位补充!原创 2010-12-14 15:02:00 · 2108 阅读 · 0 评论 -
VS2005 环境变量的设置!
mingtian bushang原创 2010-12-13 18:56:00 · 1173 阅读 · 1 评论 -
谈谈C里面的宏定义
转载自: http://www.cnitblog.com/zouzheng/archive/2007/08/31/32691.aspx 00: 首先先看一个程序.#include #include int main(){ printf("%s/n",__FILE__); printf("%d/n",__LINE__); printf("%s/n",__DATE__); printf("%s/n",__TIME__); getch(); return 0;}运行一下就知道是什么意思了。转载 2010-12-17 11:24:00 · 495 阅读 · 0 评论 -
printf,sprintf小结
声明:本文是自己总结,而非完全的原创。参考文档或者说原文地址是 http://blog.21ic.com/user1/5047/archives/2010/70652.html需要更详细的请参阅上述链接文档。转载 2010-12-17 15:42:00 · 369 阅读 · 0 评论 -
C语言对于 有符号 和 无符号 数字的处理
1.当执行一个运算时,如果它的一个运算符是有符号的而另一个是无符号的,那么C语言会隐式的讲有符号参数强制转换为无符号数,并假设这两个数都是非负的. 这个有可能导致一些问题的发生。摘自>2.另外,计算机所用的数字编码形式,绝大部分都是用补码来表示。举个例子,比如说 int a = 0xffffffff;转换成二进制则为:[一位变四位,十六进制于二进制的转换]1111 1111 1111 1111 1111 1111 1111 1111也就是4个字节,(假定机器是32位的).那么,如果执行 printf("%d原创 2010-12-21 18:39:00 · 726 阅读 · 0 评论 -
编程常见错误,转CU一个朋友签名
<br />内存泄露,内存越界访问,野指针,访问空指针,引用未初始化的变量,不清楚指针运算,结构的成员顺序变化引发的错误,结构的大小变化引发的错误,分配释放不配对,返回指向临时变量的指针,试图修改常量,误解传值与传引用,符号重名,栈溢出,无用sizeof,字节顺序,多线程共享变量没有用volatile修饰,忘记函数的返回值等。原创 2011-01-07 09:26:00 · 466 阅读 · 0 评论 -
C语言中变量定义的位置问题
先看一段代码#include int main(){printf("hello/n"); char *month_name[]={"January", "February"}; int i; for(i=0; i上面的代码这样写用 gcc -ansi编译却没有错,用VC6编译则会报以下错误信息:: error C2143: syntax error : missing ';' before 'type' : error C2143: syntax error :转载 2011-01-07 14:39:00 · 2181 阅读 · 0 评论 -
修饰词 static 的意义
比较常见的作用是,定义静态的变量.目的是将此值存入栈内,每一次调用都是使用上次的值.另一个作用,就是和extern相对应的,static修饰的函数/变量表示只能用在声明范围内的文件里面,而不能被外界引用;这样也避免了函数定义中命名冲突的情况.比如,定义 int read();程序肯定会报错,因为read()是库函数;如果定义成 static int read();则不会报错了!原创 2011-01-14 10:07:00 · 671 阅读 · 1 评论 -
一个小的printf和scanf函数,你能看出什么地方有问题吗?
<br />#include <stdio.h>main(){ int i; char c; for(i = 0; i<5; i++) { scanf("%d",c); printf("%d ",i); } printf("/n");}<br /> <br />这个函数会如你所愿打印吗?原创 2011-01-16 22:17:00 · 385 阅读 · 1 评论 -
理解有符号数和无符号数的区别。
理解有符号数和无符号数回头看上一节,我们所讲的数都是正数。同样是年纪和工资,前者不需要有负值,但后者可能需要——至少所有的老板都这样认为。那么,负数在计算机中如何表示呢?这一点,你可能听过两种不同的回答。一种是教科书,它会告诉你:计算机用“补码”表示负数。可是有关“补码”的概念一说就得一节课,这一些我们需要在第6章中用一章的篇幅讲2进制的一切。再者,用“补码”表示负数,其实一种公式转载 2012-03-23 14:57:22 · 7544 阅读 · 3 评论