《程序设计基础(C语言)》拾遗

书名:《程序设计基础(C语言)(第二版)》
编著者:张先伟 马新娟 张立红 王云 田爱奎(学院的老师们)
版次:2016 年 9 月 第2版
ISBN:978-7-302-44086-4
出版社:清华大学出版社

//这是我们程设课参考书(教材),自己突然兴起想复习,温故而知新嘛,并且总结总结,更深入的理解C语言吧。。然而新的还真挺多!!不过终于能搞懂了(欣慰),下面是一些自己相中的tips。PS:书还是不错的。

1.运算符优先级和结合性 特别是:, 与赋值运算符、 . 与 *;
2.printf附加符号 #,+,空格,- ;长度项:h,l ;
3.逻辑表达式短路原则;
4.空函数意义;
5.函数的参数传递方式:值拷贝传递;
6.函数声明+调用+定义,函数定义+调用;
7.函数声明作用:保证程序编译时能判断对该函数的调用是否正确;
8.自动类型转换:一般算术运算转换,赋值转换,return转换,传参转换(数值型),输出转换?;
9.函数属性:函数的存储属性;
10.函数的局部变量包括函数体内声明的变量和函数的参数;
11.复合语句内可定义变量:ANSI C标准不支持;
12.register可用于使用频率高的变量;
13.static静态局部变量会在且只在编译时赋一次初值(同静态全局变量);
14.全局变量默认extern类型,static将此全局变量作用域限制在本文件内;
15.extern a:声明a是一个别处定义了的外部全局变量;
16.典型均匀分布随机数程序:

#include <stdlib.h>
// int rand(void);
// RAND_MAX = 32767;
// void srand(unsigned int seed);
#include <time.h>
void Random(int a, int b)
{
    srand(time(NULL));
    for (int i = a; i <= b; i++) {
        int x = rand() * (b - a) / RAND_MAX + a;
        printf("%d\n",x);
    }
}

17.数组指定初始化式:(C99)

int a[20] = {[2] = 5, [3] = 8, [7] = 12};

18.数组名做函数参数:组名与组名间传递地址值(首地址),调用后实参的值(组名对应的地址)不变,数组元素的值同调;(组名本身是一个指针常量);

void sort (int b[], int n);

19.指针(总称,指内存中的地址),指针变量(简称指针),一个变量的“指针”(变量对应的地址),指针常量(地址常量,常量无地址,只是一个符号,(类似?)#define 定义的那种);
20.const 修饰的是一个常类型变量;
21.字符串常量属于静态存储类(存放在常量存储区,该区邻接于静态存储区的低端);如“abd”,引号中的整个内容作为一个地址(指针)(可理解为一个指针常量);
22.区别:

char *ps = "Fish_Li";
char a[] = "Fish_Li";

23.结构体内存对齐原则,共用体取成员最长长度;
24. malloc: memory allocation,1参数(size),不清零;
 calloc: clear allocation,2参数(n, size),清零;
 realloc: reset allocation,重分配(*p, new size);

void *calloc(size_t n, size_t size); //原型
int * array;
array = (int *)calloc(i, sizeof(int));

25.链表结点:数据域+指针域;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值