知识点记录
*:
1.乘号
2.指针: int * p
3.间接访问符(解引用): int *p=&a; *p=99//解引用
&&: 并且; 逻辑与; (表达式1&&表达式2)
短路与: 只要表达式1为假,则不执行表达式2
||: 或; 逻辑或; (表达式1||表达式2)
短路或:若表达式1为真,则不执行表达式2.
只要有一个表达式为真,则整个表达式为真.
三目运算符:
表达式1 ? 表达式2 : 表达式3
如果表达式1为真,执行表达式2,否则执行表达式3
逗号表达式:
整个表达式最后一个表达式的结果
关键字不能作为标识符(变量名)
static:
1.修饰变量
①修饰局部变量
生命周期: 普通局部变量:进入函数创建,函数结束销毁
静态局部变量:进入函数创建,程序结束消失
作用域: 函数体内
②修饰全局变量
作用域: 普通全局变量:整个工程
静态全局变量:当前.c文件
生命周期:程序执行开始到结束
2.修饰函数
总结:static所修饰的函数和变量都只在当前.c文件当中有效
extern 关键字用于引入外部符号(同一个工程,不同.c文件)
指针在32位下,占4个字节 64位下,占8个字节
printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(short*));
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(long*));
int a = 10;
int *p = &a;
int **pp ==&p;
printf("%d\n",**pp);
//结果输出10
switch语句
switch(整形表达式)//float,double不能作为参数类型
{
case 整形常量表达式: //允许switch嵌套
break;//一定不能忘了
}
结构体
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
struct stu
{
char name[30];
int age;
char sex[3];
};
int main()
{
struct stu s1 = { "一", 10, 'n' };
struct stu s2 = { "二", 120, 'v' };
printf("%s %d %s", s1.name, s1.age, s1.sex);//.也有访问功能
struct stu *p = &s2;
printf("%s %d %s", (*p).name, (*p).age, (*p).sex);//.的优先级高于指针(注意给指针带括号)
printf("%s %d %s", p->name, p->age, p->sex);//指向符自带解引用功能
return 0;
}
所谓强者是既有意志,
又能等待时机.
-------巴尔扎克