C语言重点难点总结
int niao = 10;
int daNiao = ++niao;/int daNiao = niao++;
//++在前:刚开始niao的值是10,++niao会先加1(11)再把值赋值给daNiao 这时daNiao是11
//++在后:会先将niao(10)赋值给daNiao,然后再再自加。
在输出浮点类型的值的时候 可以使用 %0.?f 来控制小数点之后的位数
格式转换符:%c(char) %d(整型:short、int、long)%f(浮点类型:float、double)
**使用随机数需要导入#include
赋值运算符:=
算数运算符:+、-、* (乘)、/ (除)、++ 、--
综合运算符:+=、-=、*=、/=、%=
关系运算符:是比较两个元素的关系的对比符号
<(小于)、>(大于)、==(相同)、<=(小等于)、>=(大等于)、!=(不相同)
逻辑运算符:&&(并且)、||(或者)、!(取反)(int a=5; !a;)
关系运算符和逻辑运算符只有两种情况(是(真)、否(假))
三目运算的公式:char*表达式?(问电脑表达式是不是真的)
第一个结果(真的):
第二个结果(假的);
枚举的公式之一:⬇️
enum 枚举的名字{
枚举的例子,(使用逗号隔开,默认从0开始)
枚举的例子,(当这个元素的值改变成5,下个元素默认是6)
枚举的例子(最后一个元素没有逗号)
};
enum 枚举名 变量名 = 枚举值;
printf("%d\n",type);
枚举的公式之二:
typedef enum 枚举的名字
{
枚举的例子,(使用逗号隔开,默认从0开始)
枚举的例子,(当这个元素的值改变成5,下个元素默认是6)
枚举的例子(最后一个元素没有逗号)
}要替代的名字;
switch:当有多个条件可以提供选择的时候,可以使用switch,来替代if;
switch (条件变量) {
case 条件1:
具体代码
break;
case 条件2:
具体代码
break;
case 条件3:
具体代码
break;
default:
break;
}
default:默认 任何条件 都不满足的时候 进入default
while(表达式){
循环体
}
for循环语句:
for (初始值变量;循环的条件;改变变量){
循环语句
}
数组:sizeof(list)/sizeof(int) 相当于数组总元素总量/单个元素总量
字符组:
char a[3]={'B','C','D'}
Char*a[3]={"B","C","D"}
二维数组:int a[2][3] = {{4,0,5},{9,1,2}}
结构体:
struct 名字{部件;部件;部件;......}; 分号 隔开
结构体赋值:
struct 名字 变量名;
eg:
struct House{
int doorOfHouse;
char *window;
double c;
} ;
struct House dogOfHouse;
函数:
无参数函数不需要得到结果,也不需要提供给它任何东西,无参数的函数,里面只能是固定的内容。
有参数函数根据传入的参数内容去发生改变,即输入的值不同出来的值就不同,可以灵活使用。
void 函数名(参数列表){
功能代码
}
有返回值函数(1)return携带的值就是返回值(2)是一个具体的值是一个有实际值的变量
(3)返回值类型 函数名(){
功能代码
return与返回值类型相同的参数;
}
eg:char*message(){
char*c="今天光棍节!";
return c;
}
int main(int argc, const char * argv[]) {
Printf("%f",message(c));
1、定义指针变量的时候,*表示这是一个指针类型
int *a; int * 是一个常整数指针类型
2、当取值的时候,取这个内存地址里面的值的一个符号
& 取地址符 可以通过&取一个变量的内存地址;
%p 来打印内存地址
3、指针指向数组名,是指向的数组里面的第一个元素的内存地址
int a[3]=[10,15,20];
则 char* a[3]指向的是下标为0的元素(即10)的内存地址。