-
#include <stdio.h>
-
#include <stdlib.h>
-
int main ( int argc, char *argv[] )
-
{
-
const int n = 5;
-
int a[n]={1,2,3,4,5};
- return EXIT_SUCCESS;
- }
详细见:
2. x ? : y 是什么鬼
- x ? : y 等同于 x ? x : y
3. 指针运算
-
#include <stdio.h>
-
#include <stdlib.h>
-
-
int main (int argc, char *argv[])
-
{
-
int* ip1, *ip2, iv;
-
char* cp1, *cp2, cv;
-
ip1 = (int*)0x518;
-
ip2 = (int*)0x500;
-
iv = ip1 - ip2;
-
printf("iv=%d\n", iv);
-
-
cp1 = (char*)0x518;
-
cp2 = (char*)0x500;
-
cv = cp1 - cp2;
-
printf("cv=%d\n", cv);
-
-
return 0;
- }
iv=24/4=6 cv=24/1=24
对于整数指针当它自加或自减时,实际上移动的是4个字节
4.结构体
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <string.h>
-
typedef struct __HEAD__
-
{
-
char c;
-
int num;
-
}__attribute__ ((__packed__)) HEAD;
-
-
typedef struct __HEAD2__
-
{
-
char c;
-
int num;
-
}HEAD2;
-
-
int main (int argc, char *argv[])
-
{
-
printf("pack=%d,nopack=%d\n", sizeof(HEAD),sizeof(HEAD2));
-
return 0;
- }