一开始看视频mooc的地址
http://www.icourse163.org/learn/ZJU-1001614008?tid=1002163012#/learn/content?type=detail&id=1002872754&sm=1
- Not found in current context(在当前上下文找不到,既当前状况下不能访问,不在当前作用域)C常出现
- short,int--%d
- char—%c
但在scanf中char—%c short—%hd
- double——%lf,%e(只有输出,科学计数法)(双精度浮点数)也可以%f这是因为自动类型转换,从小变大。
- float——%f,%e(只有输出,科学计数法)(浮点数)
- 1.23456e+10==1.23456*10的10次方
- 2.23e-10==2.23*10的负10次方
- unsigned ——%u
- long——%ld
- long long——%lld
- unsigned long long ——%lu
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
下方部分数据的范围取自他人博客:
unsigned int 0~4294967295
int 2147483648~2147483647 (-2^31~2^31-1)
unsigned long 0~4294967295
long 2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161
char:-128~127 (因为还有个0,所以右边少一个) short:-32768~32767
__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615
- inf是无穷大(可以用浮点来表达),nan是不存在(浮点可表达)
-fabs(b)——求b的绝对值
- sqrt求平方根是要带上#include<cmath>头文件
-a[n++]=x----a[n]=x;n++;
-c=getchar();是指从stdio流中读取字符(在键盘上就行),在之前要先定义好数组。同时要声明char c;
- int gcd(int x,int y)求最大公约数
- sort指的是排序sort(a,a+n)是从a[0]到a[n-1]排序;要加上#include<algorithm>头文件;若是c语言要加using namespace std;
- pow(2,i);指的是2的i次方,也要加#include<cmath>头文件
-- 在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,也支持了String类型。
对于补码(二进制)来说正数转为负数:正数的0变1,1变0,再加个1;如7二进制(4bit)为0111而-7则为1001;9就不能用4bit了,因为首位为1的一定是负数。9二进制(8bit)为00001001而-9则为11110111。
当有unsigned时,不以补码来表示。同时正数部分表达扩大一倍。
1个字节占用8个bit。可以用sizeof这个运算符,来计算各类型的字节。不能再sizeof内进行计算。他是静态运算符。sizeof(int)=4(字节)
- break:跳出循环。
- continue:跳过循环这一轮剩下的语句进入下一轮
要让输出的答案对其在printf("%d\t");
- goto out;从这里
- out:跳到这里
因为
- goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
函数:C语言不可以函数嵌套定义
- return ret会返回给后面的那个函数。
scanf也是拥有返回值的,一般返回值判断为1,就是正确,而0则为错误
在声明(如图函数原型)要加分号,而在实际函数头中是没有分号的。
注意:经常函数头里面没有参数,既可以把a与b去掉。
块即为大括号
目前计算机只能运用到2^64位,所以当数据太大是,有必要进行大数运算,经常使用的是模拟手算,是要利用到数组的。
数组:
c语言中数组是从0开始计数。所以数组最大下标是数组个数减一。
例如a[5]
a[0] | a[1] | a[2] | a[3] | a[4] |
for循环
这是C语言的一个漏洞,当类型不那么匹配的时候C语言,依然会继续。
c语言是类型语言,但对类型检查会不强,毕竟c是70年代的语言了。
指针:
int *p等价于int* p
更新中