1.3.1
static int j;void fun1(void){static int i = 0;i ++;}void fun2(void){j = 0;j++;}intmain(){for(k=0; k<10; k++){fun1();fun2();}return 0;}
Q:求i 和 j的值
1.4
int main(){char a[1000];int i;for(i=0; i<1000; i++){a[i] = -1-i;}printf("%d",strlen(a)); //Q: 輸出多少return 0;}
1),按照我們上面的解釋,那-0 和+0 在記憶體裡面分別怎麼儲存?
2),int i = -20;
unsigned j = 10;
i+j 的值為多少?為什嗎?
3), 下面的代碼有什麼問題?
unsigned i ;for (i=9;i>=0;i--){printf("%u\n",i);}
1.5.2
sizeof(int)*p 表示什麼意思?
留幾個問題(講解指標與數組時會詳細講解),32 位系統下:
int *p = NULL;
sizeof(p)的值是多少?
sizeof(*p)呢?
int a[100];
sizeof (a) 的值是多少?
sizeof(a[100])呢?//請尤其注意本例。
sizeof(&a)呢?
sizeof(&a[0])呢?
int b[100];
void fun(int b[100])
{
sizeof(b);// sizeof (b) 的值是多少?
}
1.8.1
留一個問題:在switch case 語句中能否使用continue 關鍵字?為什嗎?
1.11.1
注意:const 修飾的唯讀變數必須在定義的同時初始化,想想為什嗎?
留一個問題:case 語句後面是否可以是const 修飾的唯讀變數呢?
1.12
留一個問題:const volatile int i=10;這行代碼有沒有問題?如果沒有,那i 到底是什麼屬性?
1.14.1
struct student
{
}stu;
sizeof(stu)的值是多少呢?
1.15.1
union
{
int i;
char a[2];
}*p, u;
p =&u;
p->a[0] = 0x39;
p->a[1] = 0x38;
p.i 的值應該為多少呢?
1.15.2
//在x86 系統下,輸出的值為多少?#include <stdio.h>intmain(){int a[5]={1,2,3,4,5};int *ptr1=(int *)(&a+1);int *ptr2=(int *)((int)a+1);printf("%x,%x",ptr1[-1],*ptr2);return 0;}
1.16.2
留兩個問題:
A),枚舉能做到事,#define 宏能不能都做到?如果能,那為什麼還需要枚舉?
B),sizeof(ColorVal)的值為多少?為什嗎?
1.17.4
留兩個問題:
1),#define a int[10]
A),a[10] a[10];
B),a[10] a;
C),int a[10];
D),int a;
E),a b[10];
F),a b;
G),a* b[10];
H),a* b;
2), typedef int a[10];
A),a[10] a[10];
B),a[10] a;
C),int a[10];
D),int a;
E),a b[10];
F),a b;
G),a* b[10];
H),a* b;
3),#define a int*[10]
A),a[10] a[10];
B),a[10] a;
C),int a[10];
D),int a;
E),a b[10];
F),a b;
G),a* b[10];
H),a* b;
4), typedef int * a[10];
A),a[10] a[10];
B),a[10] a;
C),int a[10];
D),int a;
E),a b[10];
F),a b;
G),a* b[10];
H),a* b;
5),#define *a int[10]
A),a[10] a[10];
B),a[10] a;
C),int a[10];
D),int a;
E),a b[10];
F),a b;
G),a* b[10];
H),a* b;
6), typedef int (* a)[10];
A),a[10] a[10];
B),a[10] a;
C),int a[10];
D),int a;
E),a b[10];
F),a b;
G),a* b[10];
H),a* b;
7),#define *a * int[10]
A),a[10] a[10];
B),a[10] a;
C),int a[10];
D),int a;
E),a b[10];
F),a b;
G),a* b[10];
H),a* b;
8), typedef int * (* a)[10];
A),a[10] a[10];
B),a[10] a;
C),int a[10];
D),int a;
E),a b[10];
F),a b;
G),a* b[10];
H),a* b;
請判斷這裡面哪些定義正確,哪些定義不正確。另外,int[10]和a[10]到底該怎麼用?