int a = 10; //申请了4个字节的空间
int* p = &a; //p是一个变量-指针变量 这是代表一个指针变量
*p //解引用操作符/间接访问操作符 这是解引用
结构体--我们自己创造出来的类型
.操作符应用到结构体变量.成员
-> 结构体指针变量->成员
结构体的字符串改变要用到 strcpy
struct Book
{
char name[20];
int price;
};
int main()
{
struct Book b1 = {"昕昕",50};
struct Book* p = &b1;
printf("%s %d",(*p).name,p->price); //指针->取值
return 0;
}
C语言:
顺序结构: 从上到下依次执行
选择结构: if else (一个=是赋值 ==判断是否相等)
if() 括号内算出的内容 1或者0
switch case(后面结尾要加个break) 多分支的选路
循环结构:
while (表达式) {循环语句}
break 结束循环 continue终止本次循环
getchar () 接收一个字符 putchar() 输出一个字符
scanf缓冲区问题 (后面要清空一下缓冲区 getchar() rewind )
int ch = 0;
while((ch=getchar()) != '\n'); //防止scanf 有空格而阻断,清空缓冲区
如果不为\n 就执行 为\n就结束循环
while循环 初始化 判断 调整 相隔比较远 所以有了for循环
for(表达式1;表达式2;表达3)
{
1.不可在for循环体内修改循环变量,防止失去控制
2.建议for语句的循环控制变量的取值"前闭后开区间"写法 (比如 int i = 0 i<10)
}
for(;;) for循环的初始化 调整 判断都可以省略,那判断条件就是恒为真
do whilie 先循环一次再做判断
字符串比较要用 strcmp