C语言基础

  1. 符号常量 # define PI 3.1416
  2. 常变量 const int a =3; 有类型,占存储单元,不可以改变值
  3. 变量在存储单元中以补码形式存储.整数的补码是他的二进制,负数的补码是他绝对值的二进制按位取反在加1.最高位代表正负.
  4. %d 十进制输出,%c 字符形式输出 %s 字符串输出 %f 浮点数 %e 指数 %o 八进制 % x 十六进制 %u无符号整型 %g浮点数
  5. 字符串数组会自动在有效字符的后边加一个 '\0' 结束位,标识字符串结束.
  6. 在调用函数过程中,系统会把实参的值传递给被调用函数的形参.实参向形参传递是值传递.形参和实参占有不同的存储单元,形参的值发生改变,无法修改实参的值.
  7. 数组元素可作为函数实参.不能作为函数形参.因为形参的空间是临时分配的.用数组元素做实参时,把实参的值传递给形参,是值传递的方式.用数组名做函数实参时,想形参传递的是数组首元素的地址.
  8. 全局变量.定义在函数外的变量.局部变量.定义在函数内的变量.
  9. 全局变量存放在静态存储区.局部变量,函数形参,返回值存储在动态存储区.
  10. 变量和函数有两个属性.数据类型(int ,float) 存储类别(auto,statis,register,extern)
  11. 局部变量不声明为static时,都是auto(自动变量).动态分配存储空间.auto可省略
  12. static 声明的局部变量在函数结束后不会消失且保存原值.静态局部变量在静态存储区分配存储单元.在编译时赋初值,且只赋初值一次.
  13. register 声明的变量叫寄存器变量.存放在cpu的寄存器中,读取速度快.
  14. extern 声明的全局变量,可以把该外部变量的作用域扩大.
  15. 全局变量用static修饰后叫静态外部变量.只能在本文件使用.
  16. 内部函数. 用static修饰,只能再本文件中被访问. 外部函数,用extern修饰,可以被其他文件访问.可省略.
  17. 一个变量专门存放另一个变量的地址,它叫指针变量. 指针就是地址的意思.
  18. int * point; 指针定义. 用来指定指针变量point 可以指向的变量类型. *point 用来获得该指针指向的变量.
    & 取地址运算, &a 是a的地址, * 指针运算. int * point =&a; *point 和 a 等价.都表示 a的值. point 和 &a等价,表示a的地址.
  19. 不能通过调用函数来改变实参指针的值.但可以改变实参指针所指向的变量的值.
  20. 数组名代表数组首元素地址,是一个指针常量. int a[] ={1,3}, int * p =&a[0]; 和 int * p=a;等价.都是a[0]的首地址. * (p+5)==*(a+5) ==a[5]; 若 p=&a[0], 则 *p++ 输出a[0] p==&a[1]; 而 * ++p 输出a[1] p==&a[1];
  21. 二维数组中, int a[3][4] a代表首行的地址,a+1代表第二行的首地址,a+2代表第三行的首地址.a=&a[0];a+1=&a[1];a+2=&a[2];或者说 a=a[0]; (a+1)=a[1];
    a[0] ,a[1],a[2]是一维数组名,代表各行首元素地址既 a[0]==&a[0][0],a[1] = &a[1][0],a[2]=&a[2][0];
    a[0]+1 =&a[0][1] ; a[0]+2 =&a[0][2] ; a[1]+1 =&a[1][1] ;
    a[0]=
    (a+0); a[1] =
    (a+1); a[0]+1 =(a +0)+1=&a[0][1]; a[1]+2=(a+1)+2=&a[1][2];
    (a[1]+2)=(*(a+1)+2)=a[1][2];
    二维数组相当于指向指针的指针.
  22. int (* p)[4]; 表示 指针变量p指向包含4个整型元素的一维数组. 既p是指向一维数组的指针.
    int a[3][4]; int (* p)[4] ; p=a; p 和a 都指向二维数组的第一行.
  23. char str[] =" hello world"; char* strB ="hello world"; 字符串是按照字符数组存储的.所以可以用指针引用.指针strB 指向字符串常量的第一个字符. 字符指针变量的值可以改变. 字符数组代表一个固定的值.(数组首元素地址),不能改变.
  24. 函数指针.编译时,回味函数代码分配存储空间.这段存储空间的起始地址就是这个函数的指针.可以通过函数指针来调用函数. 定义方式 类型名 (* 指针变量)(函数形参类型) int (* p)(int , int) 只能指向 max(int a,int b) 这种函数.
  25. 指针数组. 既元素都是指针的数组. int *p[4]; 格式为 类型名 * 数组名[数组长度]; 数组本身就是指针.所以指针数组其实就是 指向指针的指针. int ** a ; == int *p[4] ;
  26. 堆可以需要时申请内存.不需要时释放.并且只能通过指针来引用.分配内存方法
    void *malloc(unsigned int size); 分配一个 size大小的连续空间.返回值是该空间的首地址.
    void *calloc(unsigned n,unsigned size)l //分配n个 size大小的连续空间.可以用来保存数组.返回值是空间首地址
    void free( void *p) //是否p所指向的动态空间.
    void *realloc(void *p,unsigned int size ); p为刚分配的动态空间首地址. 本函数可以重新分配 p指向的空间的大小.
  27. 结构体 .由不同类型数据组成的型数据结构.结构体类型的形式: struct 结构体名 {类型 成员名 ; 类型 成员名;};
    struct Student{ int num; char sex;};
    结构体类型变量
    struct 结构体名{ 成员表列 } 变量名表列; 或者 struct { 成员表列 ;}变量名表列;
    结构体指针变量. 指向结构体的地址.可以通过结构体指针变量来操作结构体中的元素;
    struct Student p; p->name;==(p).name; 可以得到结构体变量中name的值;
  28. 公用体变量.使几个不同类型的变量共享同一段内存的结构
    union 公用体名{ 成员标列 ;}变量表列; 如 union Data{ int i;char ch;float f;} a ,b,c ;
    公用体变量大小为最长的成员的内存大小.结构体变量大小为所有成员的内存大小之和;
    只能引用公用提变量的成员. 如 a.i; 在同一时间.公用体变量只能存放一个值;
  29. typedef 声明新类型.
    typedef int Integer ; 指定用Integer为类型名,作用与int 一样.
    typeder struct { int month;int day;int year;} Date; 声明新类型名Data 代表上边的结构体.
  30. 文件读写. 文件类型结构体声明
    typedef stuct{ short leval; unsigned flags; char df; unsigned char hold; short bsize;}FIFE;
    文件类型指针. FILE* fp; fp指向某一文件的文件信息区域,通过该文件信息区中的信息能访问该文件.
    文件打开 FILE * fp= fopen(文件名,使用文件方式); 使用文件方式包括 r,w,a, 只读,只写,追加等.
    文件关闭 fclose(文件指针); fclose(fp);
    读取文件一个字符 fgetc(fp) ,写入字符 fputc(ch,fp); fgets(str,n,fp); 读取长度n的字符存放早str中, fputs(str,fp); 写入str到fp指向的文件中.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342