C/C++学习笔记
windboat
这个作者很懒,什么都没留下…
展开
-
iomanip 头文件setw(int n),setprecision(int n) 用法
<br /><br />#include <iostream> //不要用iostream.h ,会出现好多问题<br /> #include <iomanip> // io 流控制头文件, 主要是一些操纵用法如setw(int n),setprecision(int n)<br /> //,setbase(int n),setfill(char c)的.<br /> ▲setw(n)用法: 通俗地讲就是预设宽度<br /> 如 cout<<setw(5)<原创 2010-11-27 19:28:00 · 976 阅读 · 0 评论 -
C/C++ Static的作用详述
<br />1.先来介绍它的第一条也是最重要的一条:隐藏。<br />当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c.<br />下面是a.c的内容:char a = 'A'; // global variable<br />void msg()<br />{<br />printf("Hello/n");<br />}<br />下面是main.c的内容:int main(void原创 2010-12-04 10:26:00 · 396 阅读 · 0 评论 -
C++ char *c 与char []区别
<br /><br />在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内<br />容程序是会崩溃的,而后者完全正确。<br />程序演示:<br />测试环境Devc++<br />代码<br />#include <iostream><br />using namespace std;<br />main()<br />{<br /> char *c1 = "abc";<br /> char c2[] =原创 2010-12-03 17:02:00 · 429 阅读 · 0 评论 -
strlen和sizeof的区别
<br /><br />1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 <br />该类型保证能容纳实现所建立的最大对象的字节大小。<br />2.sizeof是算符,strlen是函数。<br />3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''/0''结尾的。 <br />sizeof还可以用函数做参数,比如: <br />short f(); <br />printf("%d/n", sizeof(原创 2010-12-03 17:17:00 · 547 阅读 · 0 评论 -
C/C++ 堆、栈、自由存储区、全局/静态存储区和常量存储区
<br />在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 <br />栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 <br />堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。 <br />自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过转载 2010-12-04 10:58:00 · 619 阅读 · 0 评论 -
堆(heap)和栈(stack)有什么区别?? (详)
<br />简单的可以理解为:<br />heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。<br />stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。<br /><br /><br />预备知识-程序的内存分配<br /><br />一个由c/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />2、堆区(heap)原创 2010-12-03 15:04:00 · 478 阅读 · 0 评论 -
对于C语言的输出格式("/n%2d,%2.1f,%2.11f)是什么意思
对于C语言的输出格式("/n%2d,%2.1f,%2.11f)是什么意思#include "stdio.h" int main() { int a=1234; float b=123.456;double c=12345.54321;printf("/n%2d,%2.1f,%2.11f",a,b,c);}输出结果为1234,123.5,12345.5%md: m为指定输出数据的宽度 如果位数小于m,则左端补以空格,如果大于m,则按实际位数输出显然a=1234的位数是4原创 2010-12-14 11:04:00 · 24045 阅读 · 5 评论 -
有助于理解C语言一些函数的面试题
<br />今天在网上浏览时,发现了一篇关于C语言一些语法的测试题文章,看了看,感觉自己一些基本知识都没有掌握,下面贴出来供大家学习参考!<br />int x=35;<br />char str[10];<br />//问:strlen(str)和sizeof(str)的值分别是多少?<br />strcpy(str,"www.seuoutshine.com"/*共19个字母*/);<br />//问:此时x和strlen(str)的值分别是多少?<br />str="seuoutshine.com";/原创 2011-05-18 21:48:00 · 716 阅读 · 0 评论