static:静态常量,其无法在运行时改变分配。
结构体:我们自己创造出来的一种类型
struct Book { char name[14]; short price;
}; 以上的为结构体,大括号内的,为我们为这本书所列出的基本内容。为名字(name)和价格(price) char后面[]中表示的为这个为“名字”所申请的储存空间为20个字节的位置(一般整型数组一个元素占4个字节;字符型数组一个元素占1个字节,单精度浮点型数组占4个字节,双精度浮点型数组占8个字节,一个汉字占两个字节),[]内最小为14个字节。
int main() { struct Book b1(b1是给这个书起的名字) = { "C语言程序设计",55 };//此处的排列顺序是按照上文的定义的顺序来进行排列的上文,首先列出的是名字,后列出的是价格。 printf("书名:%s\n", b1.name); printf("价格:%d\n", b1.price); //b1.price=15; printf("修改后的价格:%d\n",b1.price);//(加上后面这两个双斜杠,包括的内容后,打印出的内容就会多了一个修改后的价格为15元) }(在%d的后面,\的前面加上一个“元”,其打印出的55便会带单位元,同理加任何数,其55后就会跟上什么数)
int main() { struct Book b1 = { "C语言程序设计",55 }; /printf("书名:%s\n", b1.name); printf("价格:%d\n", b1.price);/ //用指针的方法去解决: struct Book* pb = &b1;(取出的是b1的地址,放到pb这样一个变量里面去,pb就是指针变量,那这个指针它的类型是pb,这个类型这样写:pb首先前面加一颗星,说明它是指针,那指针指向的对象的类型是什么呢struct,那么就为:struct Book*,struct Book*其实就是一种指针类型,这种指针类型定义了一个变量叫pb,pb是个指针变量它指向b1) printf("%s\n", (pb).name);//(此处括号内的pb就相当于前面的b1) printf("%d\n", (*pb).price); }
注意: printf("%s\n", (*pb).name); printf("%d\n", (*pb).price); 也可以简化成: printf("%s\n",pb->name); printf("%d\n",pb->price);
变量可以直接赋值,数组名不可以 如果要改上文字符串 strcpy-字符串拷贝,若要用则需加个头文件:#include〈string.h〉 应用:strcpy(b1.name,"C++");
C语言是一种结构化的程序设计语言:顺序结构,选择结构,循环结构 分支语句:if,switch 循环语句:while,for,do while 语法结构: //:如果表达式的结果为真,那么将被执行语句,如果不为真,那么语句将不为执行 if(表达式) 语句; //:如果表达式的结果为真,那么语句一则被执行,如果表达式的结果为假,那么语句二将被执行 if(表达式) 语句1; else 语句2; //多分支:如果表达式1成立,那么只能表执行表达1,如果表达式1不成立,那么去执行表达式2,如果表达式2还不成立,那么就只能去执行表达式3,其中表达式1,表达式2,表达式3,只能被执行一个。 if(表达式1) 语句1; else if(表达式2) 语句2; else 语句3;
int main() { int age = 50; if (age < 18) printf("未成年\n"); else if (age >= 18 && age < 50)--&&为并且的意思 printf("成年\n"); else if (age >= 50 && age < 100) printf("老不死\n"); return 0; } 如果,if后加多个语句要用大括号扩起来: if(age<18) { printf("未成年\n") printf("不能谈恋爱\n") }--这里的一对{}就是一个代码块
else和离他最近的未匹配的if匹配。
switch是整形表达式,其表达的变量必须为整形,case后也只能加常量整形表达式。 switch语句:为一种分支语句。常用于多分支情况: scanf("%d",&day); switch(day) { case 1: printf("星期1\n"); break;(跳出循环语句的作用) case 2: printf("星期2\n"); break; case 3: printf("星期3\n"); break; 后面依次类推 default: printf("输入错误\n"); }
switch语句的套用: int n = 1; int m = 2; switch (n) { case 1: m++; case 2: n++; case 3: switch (n) { case 1: n++; case 2: m++; n++; break;
}--{}内的第二个从n进入相当于输入2,而在case1,case2都有n++,相当于重复了,就只运行一次
case 4: m++; break; default: break;
} printf("m=%d,n=%d\n", m, n);
int main() { int i = 1; while(i<=10) { if (i == 5) break;
printf("%d ", i);
i++;
}
return 0;
}--此处打印的为1,2,3,4因为break所以到了5便停止只打印出1,2 ,3,4这四个数,,而当改为continue时表示i=5时循环被终止导致其循环重头开始也是打印1,2,3,4。 continue循环中,本次循环continue后面的代码,后面的代码不再执行,直接跳转到我们循环的判断部分,判断循环要不要进行下一次循环。比如: int main() { int i =0 ; while(i<=10) { i++; if (i == 5) continue;
printf("%d ", i);
}
return 0;
}--此时将会跳过5打印1,2,3,4,6,7,8,9,10,11。
getchar:接收键盘的一个字符 putchar:输出一个字符
EOF--文件结束标志
标签:语句,int,大神,误入,pb,小白,b1,printf,表达式 From: https://blog.51cto.com/u_16229558/7127078