当前位置: 首页 >> 程序设计 >> C编程拾粹
 

C编程拾粹

作者:panqiaomu      来源:http://blog.csdn.net/panqiaomu     发表时间:2006-12-04     浏览次数:      字号:    

A:多维数组初始化,如

   test[2][3][4]={
         
{
                 
{000,001,002,003}
                 
{010,011,012,013}
                 
{020,021,022,023}
         }

         
{
                 
{100,101,102,103}
                 
{110,111,112,113}
                 
{120,121,122,123}
         }

}


这种初始化风格结构清晰,给人的感觉是数组元素的对应位置准确,如果需要对数组中某几个元素赋值时,这种结构就会显得很合理了。同时最重要的是它的可读性很强,便于维护。其中的花括号起到一种定界的作用。
B:看这两个表达式:
test[i]
*(test+i)
指针比引用数组下标的效率可能要高,但是引用数组下标不可能比指针的效率高。在一般的情况下,我们多采用指针代替数组,但是如果以牺牲程序的可读性和可维护性为代价去换取高效率这不是一个好想法,同时这种做法也违背了软件工程的思想。
C:一点技巧:
CODE:
/* find keyword in source file*/
#include<stdio.h>
#include<string.h>
#define null 0
int main()
{   int look_upTarget(char const *t,char const *s[]);
    char const *t="target";
    char const *source[]={
        "hacker",
        "blog",
        "baby",
        "good",
        "test",
        "target",
         null/*在这里我们用了一个空指针,那么在look_upTarget函数中就不需要知道和计算source中元素的个数了*/
    };
    printf("%d",look_upTarget(t,source));
    getch();
 }

int look_upTarget(char const *t,char const *s[])
{

    for(;*s!=null;s++)
        if(strcmp(t,*s)==0)
            return 1;
    return -1;
}
总结:1,数组名作为一个指针常量,一般来说指向数组的第一个元素的地址,但是也有一些特殊情况,如sizeof(source)和sizeof(source[0]),sizeof(source[1])等,
他们分别计算数组source所占用的内存空间和每一个数组元素所占用的空间。
     2,在一般情况下,我们都将函数形式参数的中的指针类型定义为const类型,防止间接寻址对主函数中的值做了不可预料的修改。 

责任编辑 webmaster

 
 
 
 
 
评论更多>>
 
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •