c语言问题大全,C语言难题
数组和指针,sizeof和斯特伦三个规则(只需要这三个规则就能判断)
sizeof(数组名)和(数组名)表示整体变换公式arr[0]==(arr 0)strlen要找到\0 sizeof要计算存储大小#包括标准视频
int main()
{
//一维数组
内部a[]={1,2,3,4 };//64位机器地址为8字节
printf("% d \ n,sizeof(a));//16数组名是首元素地址2个例外
printf("% d \ n ",sizeof(A0));//8(单独放)sizeof数组名和取地址数组名表示整个数组
printf("% d \ n ",sizeof(* a));//4
printf("% d \ n ",sizeof(a1));//8
printf("% d \ n ",sizeof(a[1]);//4
printf("% d \ n,sizeof(a));//8数组的地址
printf("% d \ n ",sizeof(* a));//16数组的地址解引用是数组
printf("% d \ n ",sizeof(a1));//8
printf("% d \ n ",sizeof(a[0]);//8
printf("% d \ n ",sizeof(a[0]1));//8
//字符数组
char arr[]={a , b , c , d , e , f };
printf("% d \ n ",sizeof(arr));//6
printf("% d \ n ",sizeof(arr 0));//8首元素的地址0=0首元素的地址
printf("% d \ n ",sizeof(* arr));//1首元素地址解引用=是首元素
printf("% d \ n ",sizeof(arr[1]);//1
printf("% d \ n ",sizeof(arr));//8
printf("% d \ n ",sizeof(arr 1));//8
printf("% d \ n ",sizeof(arr[0]1));//8
printf("% d \ n ",strlen(arr));//随机值数组后面放啥不清楚找到\0为止
printf("% d \ n ",strlen(arr 0));//随机值
//printf(% d \ n,strlen(* arr));//strlen传进去的是地址传了" a "为97 报错
//printf("% d \ n ",strlen(arr[1]);//地址为98 报错
printf("% d \ n ",strlen(arr));//随机值
printf("% d \ n ",strlen(arr 1));//随机值-6个
printf("% d \ n ",strlen(arr[0]1));//随机值-1号
char arr[]= abcdef ;//7个元素的数组
printf("% d \ n ",sizeof(arr));//7计算的是数组的大小6 \0
printf("% d \ n ",sizeof(arr 0));//8首元素的地址
printf("% d \ n ",sizeof(* arr));//1
printf("% d \ n ",sizeof(arr[1]);//1
printf("% d \ n ",sizeof(arr));//8
printf("% d \ n ",sizeof(arr 1));//8
printf("% d \ n ",sizeof(arr[0]1));//8
printf("% d \ n ",strlen(arr));//6
printf("% d \ n ",strlen(arr 0));//6
printf("% d \ n ",strlen(* arr));//报错
printf("% d \ n ",strlen(arr[1]);//报错
printf("% d \ n ",strlen(arr));//6
printf("% d \ n ",strlen(arr 1));//随机值
printf("% d \ n ",strlen(arr[0]1));//5
char * p= abcdef//把常量字符串一个a的地址放到页:1里去
printf("% d \ n ",sizeof(p));//8便士就是地址
printf("% d \ n ",sizeof(P1));//8
printf("% d \ n ",sizeof(* p));//1
printf("% d \ n ",sizeof(p[0]);//1等价arr[0]==(P0)
printf("% d \ n ",sizeof(p));//8
printf("% d \ n ",sizeof(P1));//8
printf("% d \ n ",sizeof(p[0]1));//8
printf("% d \ n ",strlen(p));//6
printf("% d \ n ",strlen(P1));//5
printf("% d \ n ",strlen(* p));//报错
printf("% d \ n ",strlen(p[0]);//报错
printf("% d \ n ",strlen(p));//随机值页:1里面存放的是常量地址地址里有无0不确定
printf("% d \ n ",strlen(P1));//随机值
printf("% d \ n ",strlen(p[0]1));//5第二个元素的地址
//二维数组
内部a[3][4]={ 0 };
printf("% d \ n,sizeof(a));//48
printf("% d \ n ",sizeof(a[0][0]);//4
printf("% d \ n ",sizeof(a[0]);//16首元素地址
printf("% d \ n ",sizeof(a[0]1));//4==*(a 0) 1第一行第一个元素地址
printf("% d \ n ",sizeof(* a[0]1));//4第一行第二个元素
printf("% d \ n ",sizeof(a1));//8第二行的地址
printf("% d \ n ",sizeof(* a1));//16==a[1]
printf("% d \ n ",sizeof(a[0]1));//8第二行的地址
printf("% d \ n ",sizeof(* a[0]1));//16第二行的元素
printf("% d \ n ",sizeof(* a));//16第一行的元素
printf("% d \ n ",sizeof(a[3]);//16==*(a 3)
}int main()
{
内部a[5]={1,2,3,4,5 };
int * ptr=(int *)(a1);//strong制类型转换使得指针的加减法权重改变
printf("%d,%d ,*(a 1),*(ptr-1));//2 5
返回0;
}结构测试
{
内部编号;
char * pcname
短日期;
char cha[2];
短SBA[4];
} * p;
//已知,结构体测试中类型的变量大小是20个字节
int main()
{
p=(struct test *)0x 100000;
printf("% p \ n ",P0 x1);//0x100014
printf("% p \ n "),(未签名长)p0x 1;//单纯地整型加一
//0x100001
printf("% p \ n ",(未签名的int *)p0x 1);//0x100004
返回0;
} #包括标准视频
int main()
{
内部a[4]={1,2,3,4 };
int * ptr 1=(int *)(a1);
int * ptr 2=(int *)(int)a1;//地址一个字节
printf("%x,%x "," ptr1[-1],* ptr 2 ");
//4 //200000中
返回0;
} #包括标准视频
int main()
{
int a[3][2]={(0.1)、(2.3)、(4.5)};//这是逗号表达式
int * p;//a[3][2]={1,3,5}
p=a[0];
printf(% d,p[0]);
返回0;
}int main()
{
内部a[5][5];
int(* p)[4];
p=a;//int(*)[5]和int(*)[4]
printf("% p,%d\n ",p[4][2] - a[4][2],p[4][2]-a[4][2]);
-4号的补码直接作为地址地址的加减法表示元素的个数
返回0;
}int main()
{
内部aa[2][5]={1、2、3、4、5、6、7、8、9、10 };
int * ptr 1=(int *)(a1);
int * ptr 2=(int *)(a1));
printf("%d,%d ,*(ptr1 - 1),*(ptr 2-1));//10 5
返回0;
} #包括标准视频
int main()
{
char *a[]={work , at , alibaba}://数组
char * * pa=a;
-爸爸;
printf("% s \ n"* pa):
返回0;
}int main()
{
char *c[]={ENTER , NEW , POINT , FIRST}://数组
char **cp[]={c 3,c 2,c 1,c };
char * * * cpp=cp
printf(" % s \ n " * * CPP);//点
printf(" % s \ n " *-* CPP 3 ");//他
printf("% s \ n"*、CPP[-2]3);/==*(CPP-2)第三编
printf("% s \ n ",CPP[-1][-1]1);//*(p-1)-1)ew
返回0;
}
(p-2)不会改变刑事诉讼法的值
来自51吨重博客作者咸菜萝卜干的原创作品,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。