C语言代码的几个误区
有一些是c专家上看到的
#include<stdio.h>
//函数的内部数组在返回该数组的时候 由于数组已经被销毁 返回的地址是错误 但编译不报错 需要使用全局数据来避免
char buffer[]={'x','b','\0'};
char * re()
{
int i=6;
//char buffer[]={'x','b','\0'};
return buffer;
}
void main()
{
printf("%s",re());
}
----------------------------------------------------------------------------------------------------------------
#include<stdio.h>
void main()
{
int a=sizeof(int);
int wo = 6;
int *q = &wo;
int bb = 3*sizeof 8;
int b = 3*sizeof *q; //sizeof接类型时要打括号 要是接一个具体的值 就不用括号
printf("%d\n",b);
int c=(4,7);
int d; //这里申明和定义不能在一起 原因不明
d= 4,7;
printf("%d\n",c); //造成不一样的原因是 ,取右边的值
printf("%d\n",d); //这里的原因是 =号的优先级大于, 具体为 (d=4),7
}
----------------------------------------------------------------------------------------------------------------
#include<stdio.h>
void main()
{
char * xiaobai[]={"aaa","bbbb","ccc" "dddddd"};
char xiao[]={'x','b','\0'};
char *qq="qqqqq";
printf("%s",xiaobai[2]); //得到的字符串是cccdddddd
//这里若是 %S 大S 输出会有区别
printf("%c\n",xiao[1]);//%c接受一个具体的值
printf("%s\n",xiaobai[1]);//%s 接受一个地址
printf("%s\n",qq); //%s 接受一个地址
}
已有 0 人发表留言,猛击->>这里<<-参与讨论
ITeye推荐