Otc10
#include
#include
int main() {
int x = 0, y = 5, z = 3;
while(z-- && ++x < 5){
y = y -1;
}
printf("%d,%d,%d\n",x,y,z);
}
(1)b[i][j];
(2)*(b[i]+j);
(3)*(b+i)[j]
#include
int main() {
int i,count=0;
for(i = 0;i<3;i++){
if(i%2)
continue;
count++;
}
printf("%d\n",count);
}
Oct11
在C语言中,`char *s; s = "Beijing";`是正确的。而`char *s; s = {"Beijing"};`是错误的。
错误的原因是:
1. `char *s;`声明了一个字符指针变量s,但没有为其分配内存空间。
2. `s = {"Beijing"}`试图将一个字符串字面量(由双引号括起来的字符序列)赋值给字符指针s所指向的内存空间。但是,由于s没有分配内存空间,这种赋值操作是不允许的,会导致未定义行为。
正确的做法是使用`char *s; s = "Beijing";`,这样可以将字符串字面量赋值给字符指针s所指向的内存空间。
#include
#include
void fun(char *p,int n){
char *t;
int i,j;
for(i=0;i<n-1;i++){
for(j<i+1;j<n;j++){
if(strlen(*(p+i))>strlen(*(p+j))){
t =*(p+i);
*(p+i) = *(p+j);
*(p+j) = t;
}
}
}
int main(){
char *s[] ={"abc","abcdef","abbd"};
fun(s,3);
for(int i = 0;i<3;i++){
printf("%s\n",s[i]);
}
}
}
#include
int main(){
int x,y;
scanf("%2d%*4s%2d",&x,&y);
printf("%d",y-x);
return 0;
}

#include
#define N 5
int main(){
char s1[N] = {"ABCDE"};
char s2[N] = "ABCDE";
char s3[N] = {'A','B','C','D','E'};
char *s4;
s4="ABCDE";
printf("%s,%s,%s,%s\n",s1,s2,s3,s4);
return 0;
}

一、八进制转义字符
它是由反斜杠'\'和随后的1~3个八进制数字构成的字符序列。
字符集中的所有字符都可以用八进制转义字符表示。
二、十六进制转义字符
它是由反斜杠'\'和字母x(或X)及随后的1~2个十六进制数字构成的字符序列
Otc12
int main(){
union{
int a;
char b;
double c;
}data;
data.a = 5;
printf("%f",data.c);
}
#include
--------------------------------------------
#include
int main(){
union{
int a;
char b;
double c;
}data;
data.a = 5;
printf("%f",data.c);
}
均为以下结果

Otc13
#include
int main(){
struct mf{
unsigned short a:4;
unsigned short b:5;
unsigned short c:7;
}test;
int i;
test.a = 2;
test.b = 3;
test.c = 0;
i = *((short*)&test);
printf("%d\n",i);
}
Otc20
关于静态变量的知识点总结:
1、静态变量是存储在程序的数据段中的变量,它们的生命周期与程序的运行时间相同。
2、静态变量在程序开始时只被初始化一次,而不是每次调用函数时都重新初始化。
3、静态变量的初始值是在编译时确定的,而不是在运行时确定的。
4、静态变量的作用域仅限于定义它的文件或函数中。
5、静态变量可以通过extern关键字在其他文件中使用。
6、静态变量可以用于实现全局变量的功能,但它们不能用于实现线程安全。
7、静态变量可以在函数内部声明和初始化。
8、静态变量可以在函数内部修改,但不能在函数外部直接访问。
9、静态变量可以在函数内部作为参数传递,但不能作为返回值返回。
10、静态变量可以在函数内部作为数组索引使用。
11、静态变量的释放是在程序结束时才释放,不会因为退出函数而释放。