易截截图软件、单文件、免安装、纯绿色、仅160KB

C深度解剖问题代码分析笔记2






<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->

是C深度解剖 P47的一系列关于define和typedef的用法:
/****以下是
#define
a int[10]

的各种用法,都报错
***
a[10]
a[10];
//**************
a[10]
a;
//**************
int
a[10];
//**************
int
a;
//**************
a
b[10];
//**************
a
b;
//**************
a*
b[10];
//**************
a*
b;
*********************************************/
/******以下是
typedef
int a[10]
;
的用法
*****************
//typedef
int a[10]定义了一种包含
10个
int的数组的类型
a[10]
a[10];//报错
,没有标识符
//******************************************
a[10]
a; //报错
,没有标识符
//******************************************
int
a[10]; //如常
,a[10]只是个普通的数组
//******************************************
int a;
//如常
,a只是个普通的变量
//******************************************
a
b[10];
//sizeof(a)为
40

//b[10] 是个二维数组,包含了
10*10个
int

//b[1][1]=2;//可以如常使用
//******************************************
a
b;
//b是个线性数组
//******************************************
a*
b;
//b
是个
a型指针
,可以如此操作:
b=malloc(sizeof(a));
int i;
for(i=0;i<10;i++)
{
(*b)[i]=i;

}
for(i=0;i<10;i++)
{
printf("%d
",*(*b+i)); //与
(*b)[i]一样
}
可能有人会认为这里的
a*
b; 是声明一个指针数组,类似于
int
*p[10]。
然而两者有本质的不同,简单来讲,前者是一个
40字节的框子,
b+1就会向前移
40字节框住下
40个字节;后者是个
4字节的框子,
p+1只会前移
4字节框住下
4个字节。
//******************************************
a*
b[10];
//b[10]是
10个
a型数据构成的数组,也就是说有
100个
int
int
i,j;
for(i=0;i<10;i++)
{
b[i]=(a*)malloc(sizeof(a));
for(j=1;j<11;j++)
{
(*(b[i]))[j]=i*10+j;
}
printf("\n");
}
for(i=0;


相关文档:

C#(C sharp)字符串和时间的相互转换

C#(C sharp)字符串和时间的相互转换。
 
一、DateTime –> string
时间类型转化成字符串类型,那是相当的简单,直接调用ToString()方法即可。如:
DateTime dt = DateTime.Now;
string dtStr = dt.ToString();
 
如果想对输出格式化,可以这么写:
dt.ToString("yyyy年MM月dd日");   ......

C编译的伪指令

一般变量定义在*.c文件中,而*.h文件中声明变量或函数名和符号名.
避面重复编译的解决方法:
    比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件都要调用同一个头文件去编译,重复编译会产生大量的声明冲突。解决这个问题的方法使用#ifndef, #endif, #endif。
 &nbs ......

C 位操作

 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
C 位操作
时间:2009-10-9
作者:sofa120
注:    转载请说明出处
/////////////////////////// ......

C puzzles


Authentication
Login with:New JS-Kit account
Google Friend Connect
Twitter account
FriendFeed account
Yahoo account
Blogspot URL
JS-Kit account
Haloscan account
OpenID
Dear visitor,
Thanks for your interest in C programming.
In this page, you will find a
list of interesting C p ......

C/C++发展历史简单介绍

 C语言之所以要起名为“C”,是因为它是主要参考那个时候的一门叫B的语言,它的设计者认为C语言是B语言的进步,所以就起名为C语言;但是B语言并不是因为之前还有个A语言,而是B语言的作者为了纪念他的妻子,他的妻子的第一个字母是B;
    当C语言发展到顶峰的时刻,出现了一个版本叫C with ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号