首页 > 移动平台 > 详细

【IOS开发】C语言知识总结(3)

时间:2015-07-06 01:22:19      阅读:279      评论:0      收藏:0      [点我收藏+]

数组

数组的特点:

  • 只能存放一种类型的数据,比如int类型的数组、float类型的数组

  • 里面存放的数据称为“元素”

初始化方式

int a[3] = {10, 9, 6};

int a[3] = {10,9};

int a[] = {11, 7, 6};

int a[4] = {[1]=11,[0] = 7};

常见错误

int a[];

int[4] a;

int a[b];

a = {10, 11};

a[4] = {10,9,8,5}; 

内存分析

  • 数组存储空间的大小

  • 存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的

  • 数组名的作用,查看元素地址
  • 数组越界的注意

二维数组

二维数组是一个特殊的一维数组:它的元素是一维数组。例如int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素

初始化

    int a[3][4] = {1,2,3,4,5,6};

    int a[3][4] = {{},{},{}};

    int a[][5] = {3,21,31,2,32,1};

注意错误:

    int a[3][4];

    a[3] = {};

字符串

很多个字符组合在一起就是字符串了

初始化

  • char a[] = “123”;  和 char a [] = {‘1’,’2’,’3’};的区别,可以比较大小

  • “123”其实是由’1’、’2’、’3’、’\0’组成

  • “123”的存储分布

  • 字符串的输出”%s”,’\0’是不会输出的

\0的作用

‘\0‘是一般字符串语句中的结束符号,可以判断字符串是否结束

字符串数组

初始化

char names[2][10] = { {J,a,y,\0}, {J,i,m,\0} };  
char names2[2][10] = { {"Jay"}, {"Jim"} };  
char names3[2][10] = { "Jay", "Jim" };

指针

定义格式    类名标识符 *指针变量名;    如  int *p;

先定义后赋值

// 简单取值
int a = 10;
int *p;
p = &a;
printf(“%d”, *p);
// 简单改值
*p = 9;

定义的同时赋值

int a = 10;
int *p = &a;

清空指针

p = 0;
p = NULL;

指针与数组

1、指向数组元素的指针与普通指针变量一样,例如

int a[5];
int *p=&a[0];
p=a; //数组名代表数组的首地址
p=&a[1];//指针指向第二个元素 

在数组里面,通过*(p+1)、*(p-1)就可以直接获取上下元素。
2、指针下标:在C语言中,中括号[]是下标运算符,一般我们习惯用数组名[下标]对数组元素进行访问,实际上,下标运算符可用于指针运算,例如:

int a[4];
int *p=&a[1];  //指针p指向数组的第二个元素

p[1] --> *(p+1) 下一个元素,即a[2]
p[-1] --> *(p-1) 上一个元素,即a[0]

下标运算符:D[N]没有规定D和N的顺序,N[D]也是可以的,例如:
1[p] --> *(1+p)
(p+1)[1] --> *(p+1+1) //用的人少
3、访问数组元素的4种方式:  a[i]、 *(a+i)、p[i]、*(p+i) 

#include <stdio.h>
int main(){
  int x[] = {1,2,3};
  int s=1,i,*p=x+2;  //*p = &x[2]
  for(i=2;i>=0;--i)
    s -= (-i)[p]; // (-i)[p] = *(-i+p) 1-1=0 0-2=-2 -2-3=-5
  printf("%d\n",s); // -5
  return 0;  //1[p] --> *(1+p)
}

 

【IOS开发】C语言知识总结(3)

原文:http://www.cnblogs.com/melodyzhy/p/4623281.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!