那些颠覆你想想的c语言代码
直接看代码↓↓↓
#include<stdio.h>
int main(){
;
{
;
}
}
char范围溢出
#include<stdio.h>
int main(){
char a=127,b=128,c=129;
printf("%d,%d,%d",a,b,c);
}
相同的case匹配不可以重复出现
#include<stdio.h>
int main(){
int a=100;
switch (a){
case 100:
printf("hello");
case 100:
printf("world");
}
}
不同类型的运算
#include<stdio.h>
int main(){
int a=100-'a';
printf("%d----%c",a,a);
}
共用体只保留最后一次赋值
#include<stdio.h>
union {
int a,b;
}r;
int main(){
r.a=100;
r.b=200;
printf("a=%d,b=%d",r.a,r.b);
}
你意想不到的结果
#include<stdio.h>
int main(){
int i = 8,j=10;
printf("%d,%d,%d,%d",i,j,++i,++j);
}
野指针,不输出结果
#include<stdio.h>
int main(){
int *p,a=100;
*p=a;
printf("%d",*p);
}
空指针,无法访问
#include<stdio.h>
int main(){
int *p=NULL,a=100;
*p=a;
printf("%d",*p);
}
字符串的长度
#include<stdio.h>
#include<string.h>
int main(){
char c[] = "stu\0dy\0";
printf("内存所占长度:%d,编译器理解长度:%d",sizeof(c),strlen(c));
}
不断更新,欢迎投稿!