上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
c语言知识的复习(2)
作者:未知 申领版权
2012年01月24日 共有 1234 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    

指针

指针变量的本质是用来放地址,而一般的变量是放数值的。
    int  *p 中   *p和p的差别:
    *p可以当做变量来用;*的作用是取后面地址p里面的数值
    p是当作地址来使用。
    *p  和 (*p) 的之间的差别: 
    *p 是 地址会变化。
    (*p)  是数值会变化。                   
    三名: 
    数组名:表示第一个元素的地址。
    函数名:表示该函数的入口地址。
    字符串常量名:表示第一个字符的地址。
    
    指针变量是存放地址的。
    例如:int a=2,*p=&a;
    *p=*p 2;
    (由于*p指向变量a,所以指向哪个就等价哪个,这里*p等价于a,可以相当于是a=a 2)  
    指针变量两种初始化
    方法一:int a=2,*p=&a;(定义的同时初始化)
    方法二:int a=2,*p;    (定义之后初始化)
    p=&a;
    

数组

1)一维数组的重要概念:
    对a[10]这个数组的讨论。
    1、a表示数组名,是第一个元素的地址,也就是元素a[0]的地址。
    2、a是地址常量,所以只要出现a ,或者是a=a 2赋值的都是错误的。
    3、a是一维数组名,所以它是列指针,也就是说a 1是跳一列。  
    对a[3][3]的讨论。
    1、a表示数组名,是第一个元素的地址,也就是元素a[0][0]的地址。
    2、a是地址常量,所以只要出现a ,或者是a=a 2赋值的都是错误的。
    3、a是二维数组名,所以它是行指针,也就是说a 1是跳一行。
    4、a[0]、a[1]、a[2]也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a[0] 1,a[1] 1,a[2] 1都是跳一列。
    5、注意a和a[0] 、a[1]、a[2]是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。
    2) 二维数组做题目的技巧:
    如果有a[3][3]={1,2,3,4,5,6,7,8,9}这样的题目。
    步骤一:把他们写成:            第一列  第二列  第三列    
    a[0]à   1       2       3   ->第一行
    a[1]à   4       5       6   —>第二行
    a[2]à   7       8       9   ->第三行
    步骤二:这样做题很简单:        
    *(a[0] 1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a[0][1]元素,所以是1。
    *(a[1] 2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a[1][2]元素,所以是6。
    一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。
    3) 数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写
    int a[]={1,2} 合法。   int a[][4]={2,3,4}合法。   但int a[4][]={2,3,4}非法。
    4) 二维数组中的行指针
    int a[1][2];  
    其中a现在就是一个行指针,a 1跳一行数组元素。  
    a[0],a[1]现在就是一个列指针。a[0] 1 跳一个数组元素。
    

其它

1) strlen 和 sizeof的区别
    
    2) define  f(x)(x*x)  和  define   f(x) x*x 之间的差别
    
    3) main(int argc,char **argv) {}  。第一个参数是表示输入的字符串的数目,第二个参数是指向存放的字符串。
    4) 函数的递归调用一定要记得有结束的条件,并且要会算简单的递归题目。要会作递归的题目
    5) 结构体和共用体以及链表,typedef
    6) 函数指针的用法(*f)()
    int add(int x, int y)
    {....}
    main()
    { int  (*f)();
    f=add;
    }
    赋值之后:合法的调用形式为1、add(2,3);
    2、f(2,3);
    3、(*f)(2,3)
    7) 两种重要的数组长度:
    char a[]={‘a’,’b’,’c’};    数组长度为3,字符串长度不定。sizeof(a)为3。
    char a[5]={ ‘a’,’b’,’c’}    数组长度为5,字符串长度3。sizeof(a)为5。
    8) scanf 和  gets的数据:
    如果输入的是  good  good  study! 
    那么scanf(“%s”,a); 只会接收  good.  
    gets(a); 会接收  good good study!  
    

 

相关新闻

知识创新改变世界进程
肢体语言塑造你自己
缔约立富---知识更重要(2)
缔约立富---知识更重要(1)
缔约立富---赚钱靠真智慧
缔约立富---知识发富
杂谈语言(之六)——文字改革(下):一失足成千古恨的文字改革
杂谈语言(之五)——文字改革(上):半吊子的改革最糟糕!
杂谈语言(之四)——续谈广东话的口头语(2)
杂谈语言(之四)——续谈广东话的口头语(1)

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》