嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2014-03-13 3421 次浏览 标签 : C

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

数组的定义

#include <stdio.h>

int main(){
	int score[2] = {1,2};
	printf("%d\n",score[0]);
	printf("%d\n",*score);
	printf("%d\n",score[1]);
	printf("%d\n",*(score+1));
}

数组是一种结合类型,数组名就是数组的首地址的指针,也是第一个元素的地址指针。数组名既然是指针,那么*(score+1)就向后移动int的字节大小,数组是一片紧凑内存,所以此时移动到了 score 数组分配个第二个元素的首地址了。

指针数组

#include <stdio.h>

int main(int argc, char const *argv[]) {
  int a = 1;
  int b = 2;

  int * p[2] = {&a,&b};

  printf("a addr:\t %p\n", &a);
  printf("*(p + 0) sddr:\t %p\n", *(p+0));

  printf("*(&a) value:\t %d\n", *(&a));
  printf("*(*(p+0)) value:\t %d\n", *(*(p+0)));
  return 0;
}

定义声明结构体的方式

// 1.第一种方式直接定义
struct coord
{
	int x;
	int y;
};
// 实例化声明变量
struct coord first, second;

// 2.第二种方式声明方式直接定义结构附带声明两个该结构的变量
struct coord
{
	int x;
	int y;
} first, second;

// 3.第三种方式使用 typeof 给结构体或共用体创建别名
typeof struct
{
	int x;
	int y;
} coord;
// 如此一来创建变量的时候就相对于第一种要简洁一些
coord firsti, second;

// 4.还可以在结构体声明完以后给结构体添加别名,例如下面 nginx 里面的代码
struct ngx_command_s {
    ngx_str_t             name;
    ngx_uint_t            type;
    char               *(*set)(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
    ngx_uint_t            conf;
    ngx_uint_t            offset;
    void                 *post;
};

typedef struct ngx_command_s     ngx_command_t;

static ngx_command_t xxx...;

数组和指针

int a[5] = { 1, 2, 3, 4, 5 };
int b[5] = { 6, 7, 8, 9, 10 };
int* p = a;

for (int i = 0; i < 5; i++)
{
	printf("%d,%x\t", a[i], &a[i]);
	printf("%d,%x\t",*(a+i),a+i);
	printf("%d,%x\t", p[i], &p[i]);
	printf("%d,%x\t\n", *(p + i), p + i);
	
}

p = b;

for (int i = 0; i < 5; i++)
{
	printf("%d,%x\t", p[i], &p[i]);
	printf("%d,%x\t\n", *(p + i), p + i);

}

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表

回复 亮亮 2016-02-17 15:08:35
c语言的入门嘛,有什么书推荐的。