C和指针 学习笔记-3.数组与指针

数据名代表首地址

指向数组的指针

#include <stdio.h>
extern void iterate(int *p);
void main(){
	int a[]={1,2,3,4,5};
	iterate(a);

}
void iterate(int *p){
	int i;
	for(i=0;i<5;i++){
		printf("%d",*p++);
	}
}

指向一维数组的指针

int (*p)[3]

#include <stdio.h>
void iterate(int (*p)[3]);
void main(){
	int a[3][3]={{11,12,13},{14,15,16},{17,18,19}};
	iterate(a);

}
void iterate(int (*p)[3]){
	int i;
	int j;
	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			printf("%d\t",*(*(p+i)+j));

		}
		printf("\n");
	}
}

指针数组

char *p[3]

#include <stdio.h>
void main(){
	char *strs[3] ;
	strs[0]="zhanhua";
	strs[1]="linin";
	strs[2]="wanwu";
	int i ;
	for(i=0;i<3;i++){
		printf("%s\t",*(strs+i));
	}

}

指针的指针

char **str

#include <stdio.h>
void main(){
	char *strs[3] ;
	strs[0]="zhanhua";
	strs[1]="linin";
	strs[2]="wanwu";
	char **ps;
	ps=strs;
	int i ;

	for(i=0;i<3;i++){
		printf("%s\t",*(ps+i));
	}

}

C和指针 学习笔记-3.数组与指针,布布扣,bubuko.com

时间: 2024-10-10 16:53:52

C和指针 学习笔记-3.数组与指针的相关文章

数组与指针学习笔记

1.数组初始化说明 (1).在函数体外定义的内置数组,其元素均被初始化为0: (2).在函数体内定义的内置数组,其元素无初始化: (3).类类型的数组自动调用默认构造函数进行初始化,如果无默认构造函数,则必须为该素族元素提供显示初始化. 2.指针的定义 double *p_dbData1, p_dbData2; p_dbData1为指向double类型的指针,p_dbData2为类型为double的对象,若两个变量都定义为double指针,则如下所示: double *p_dbData1,  *

&lt;深入理解C指针&gt;学习笔记和总结 第四章 指针和数组

数组是一个什么玩意: 数组和指针我的理解,有相同之处也有不同之处.因有相同之处,因此一些资料上说,数组和指针本质是相同的.因有不同之处,因此也有一些资料上说,数组和指针是不一样的. 相同之处: 数组名字和指针名字都代表了一个地址. 如:int num[10];num是数组名.函数开辟了一个存储十个整数类型的空间,而num是他们的首地址. int *p; p=(int *)malloc(10*sizeof(int));类似的,p也指向了首地址. 不同之处是,num[10]中的空间位置是在栈中,而

C# 指针学习笔记之指针类型

大学的时候学过C++.C,最近工作也不是很忙,就想起看看C#中的指针,看看.回忆一下啊,指针的用法,以下学习笔记摘自msdn:指针类型 在不安全的上下文中,类型可以是指针类型以及值类型或引用类型.指针类型声明具有下列形式之一: type* identifier; void* identifier; //allowed but not recommended 下列类型都可以是指针类型: sbyte.byte.short.ushort.int.uint.long.ulong.char.float.d

C++学习笔记8-操作符&amp;指针

1.  重载操作符 赋值操作符的返回类型应该与内置类型赋值运算返回的类型相同.内置类型的赋值运算返回对右操作数的引用,因此,赋值操作符也返回对同一类类型的引用.例如,Sales_item的赋值操作符可以声明为: class Sales_item { public: // other members asbefore // equivalent to thesynthesized assignment operator Sales_item&operator=(const Sales_item &a

C和指针 学习笔记-4.函数

参数传递: 参数传递采用按值传递 ADT&黑盒 ADT:abstract data type,抽象数据类型 c可以用于设计与实现抽象数据类型,因为它可以限制函数和数据定义的作用域,这种技巧也称为黑盒设计 user.h #define MAXLEN 3 struct UserClz { char *name; char *phone; char *address; }; typedef struct UserClz User; /* *接函数 *通地名称查找地址 */ char const * l

C语言基础学习3:数组与指针

数组元素的指针就是数组元素的地址. 1.指向数组元素的指针 C语言规定数组名(不包括形参数组名,形参数组并不占据实际的内存单元)代表数组中的首元素(即序列为0的元素)的地址. int a[10]; int *p1,*p2; p1 = &a[0]; p2 = a; p1和p2指向同一个数组a[10]. 2.通过指针引用数组元素 按C语言的规定,如果指针变量p已指向数组中的一个元素,则p+1指向同一个数组中的下一个元素,而不是将p的值(地址)简单的加1. 如果p的初值为&a[0],则 (1)

Swift学习笔记(12)--数组和字典的复制

Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中的NSArray和NSDictionary不同,它们是用类来实现的. 注意:下面的小节将会介绍数组,字典,字符串等的复制操作.这些复制操作看起来都已经发生,但是Swift只会在确实需要复制的时候才会完整复制,从而达到最优的性能. 字典的赋值和复制操作 每次将一个字典Dictionary类型赋值给一个

Swift学习笔记(5)--数组

数组的下标从0开始计数,相关方法属性涉及到下标时也从0开始计数 1.定义: //1.可变数组 var cityArray = ["Portland","San Francisco","Cupertino"] //2.不可变数组 let cityArray2 = ["Portland","San Francisco","Beijing"] //3.空数组 var animalArray =

iOS: 学习笔记, Swift与C指针交互(译)

Swift与C指针交互 Objective-C和C API经常须要使用指针. 在设计上, Swift数据类型能够自然的与基于指针的Cocoa API一起工作, Swift自己主动处理几种经常使用的指针參数. 在本文中, 我们将看到C中的指针參数怎样与Swift中的变量,数组,字符串一起工作. 指针作为输入/输出參数 C和Objective-C不支持多个返回值, 所以Cocoa API常常使用指针传递附加參数到函数. Swift同意把指针參数看成[inout]參数, 所以你能够用相同的&语法传递一