include
int main(){
/ 1 /
// int a[3][3]={6,1,2,3,4,5};
// int p=&a[0][0];
// printf(“%d\n”,&a[0][0]);
// printf(“%d\n”,&a[0][1]);
// printf(“%d\n”,&a[1][0]);
// printf(“%d\n”,p);
// printf(“%d\n”,(a+1));
// printf(“%d\n”,(a)+1);
// printf(“aaa%d\n”,a[3][1]);
// printf(“%d\n”,a[2][1]);
// int a[3][3]={1,2,3,4,5,6,7};
// printf(“%d\n”,a[0][1]);
// printf(“%d\n”,a[0][2]);
// printf(“%d\n”,a[0][4]); // 列索引超过2后, 同样往后遍历, 这里输出为5
/ 列索引一般不会越界,超过列数后,往下一排继续遍历 */
/ 2 /
// int a=4,b=3,c,d=9;
// c = 1||0&&0;
// printf(“%d\n”,c);
// printf(“d=%d\n”,d);
/ && 的优先级大于 || /
/ 3 /
// char arr1[]=”abcdef”;
// char arr2[4]=”abcdef”;
// char arr3[]={“abcdef”};
// char arr4 = “abcdef”;
// char arr5[] = {
// “aa”,
// “bb”,
// “cc”
// };
// printf(“%s\n”,arr1);
// printf(“a=%c\n”,arr2[2]);
// printf(“%s\n”,arr3);
// printf(“%c\n”,arr4[1]);
// printf(“%s”,arr5[1]);
/ 上面这些数组的定义都是可行的 /
/ 4 /
// char *a = “abc”,b[50]=”xyzsdf”;
// strcpy(b+1,a);
// printf(“%s”,b); //a的\0也会替代b中的’s’字符, 因此输出到\0为止
// int i;
// for(i=0;i
/ 5 /
//#define f(z) zz
//#define f(z) (z)(z)
//printf(“ddd=%d\n”, f(6+6));
/ 宏定义函数, 注意后面运算没加括号时, 实参传过去后再做运算 /
/ 6 /
//float a=1.6;
//int b;
//b= (int)(a);
//printf(“%d”,b);
/强制转换类型不会四舍五入/
/ 7 /
//switch (3){
// default: printf(“this is default\n”);
// case 1: printf(“this is 1\n”);
// case 2: printf(“this is 2\n”);
//}
//printf(“———–\n”);
//switch (3){
// case 1: printf(“this is 1\n”);
// case 2: printf(“this is 2\n”);
// default: printf(“this is default\n”);
//}
//printf(“———–\n”);
//switch (1){
// case 1: printf(“this is 1\n”);
// case 2: printf(“this is 2\n”);
// default: printf(“this is default\n”);
//}
//printf(“———–\n”);
//switch (1){
// default: printf(“this is default\n”);
// case 1: printf(“this is 1\n”);
// case 2: printf(“this is 2\n”);
//}
/*
default放的位置不同, 执行顺序有所不同
大概执行机制为:
先将括号与case后字符做比对, 若无匹配, 则执行default, 并且从上至下执行
若有匹配, 则从匹配行开始从上至下执行(包括default).
以上两种情况都为未加break.
*/
/ 8 /
//struct aa
//{ double r2;
// int r1;
// float r3;
// union uu{
// char u1[5];
// long u2[2];
// }ua;
//}maya;
//
//printf(“%d”,sizeof(struct aa));
/未解决的问题/
/ 9 /
// int a=2,c=5;
// printf(“a=%%d,b=%%d\n”,a,c);
// printf(“a=\%d,b=\%d\n”,a,c);
/ c语言中, 想要输出’%’, 就在前面外加一个’%’ /
/ 10 /
// int a[] = {100,1,70,10,0,5}, p=a;
// printf(“%d”,p+=3);
/指针符的优先级大于+=*/
/ 11 /
//int c[]={5,4,3,2,1,0}, ptr1, ptr2;
//ptr1 = c;
//ptr2=&c[5];
//
//printf(“%d\n”, ptr1);
//printf(“%d\n”, ptr2);
//printf(“%d\n”, ptr2-ptr1);
/int数据类型占用4个字节, ptr2-ptr1应该为20, 结果为5/
/未解决的问题/
/ 12 /
//char a[20],b[20],c[20],d[20];
//scanf(“%s%s”, a, b);
//gets(c);
//printf(“%so\n”,a);
//printf(“%s\n”,b);
//printf(“%s\n”,c);
//scanf(“%s”, d);
//printf(“%saaa”,d);
/ 通过scanf(“%s”)这样的方式给字符串赋值, 字符串不能接收空格字符 /
/ 13 /
//printf(“%d\n”, sizeof(‘A’+10+1.2));
//printf(“%d\n”,sizeof(‘1’+1));
//printf(“%d\n”,’1’+1);
/* 运算时的转换规则: char
Original: https://www.cnblogs.com/self479/p/15226462.html
Author: yiSiNing479
Title: 学习c语言时对一些疑问的测试
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577631/
转载文章受原作者版权保护。转载请注明原作者出处!