码迷,mamicode.com
首页 > 编程语言 > 详细

c语言之指针与数组

时间:2015-08-29 11:15:09      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:c语言   指针   数组   数组指针   指针数组   

多级指针:
int main()
{
	int i=10;
	int *p=&i;
	int **pp=&p;
	int ***ppp=&pp;
cout<<p<<":"<<*p<<":"<<endl;  
cout<<pp <<":"<<*pp<<":"<<**pp<<":"<<endl;
cout<<ppp<<":"<<*ppp<<":"<<**ppp <<":" <<***ppp<<":"  <<endl;
	return 0;
}

 数组指针

void main()
{
	int a[3][3]={ 1,2,3,4,5,6,7,8,9};
 	int (*q)[3];//数组指针

	q=a;
	cout<<q<<endl;//0012ff24
	cout<<*q<<endl;//0012ff24
	cout<<*q+1<<endl;//0012ff28//p+4bit
	cout<< *q[0]<<endl;//1
	cout<< **q <<endl;//1  等同上
	cout<<**q+100<<endl;//101
	cout<<**(q+1)<<endl;//4
	cout<<*(*q+1)<<endl;//2
	cout<<q+1<<endl;//0012ff30
	cout<<*(q+1)<<endl;//0012ff30
	cout<<q+3<<endl;//0012ff48,
	cout<<*q+1<<endl;


}

指针数组


void main()
{

	int a[3][3]={ 1,2,3,4,5,6,7,8,9};
 	int *q[3];//指针数组
	 for(int i=0;i<3;i++)
      q[i]=a[i];
	 cout<<q<<endl;//ff18   q本身
	 cout<<*q<<endl;//ff24   a[0][0]地址
	 cout<<*q+1<<endl;//ff28 a[0][1]
	 cout<<*(q+1)<<endl;//ff30  a[1][0]
	 cout<<**q<<endl;//1     a[0][0]的值
	 cout<<*(*q+1)<<endl;//2     a[0][1]的值
	 cout<<**(q+1)<<endl;//4       a[1][0]的值
}


#include<stdio.h>
#include<iostream>
using namespace std;

 
char *c[]={"ENTER","NEW","POINT","FIRST"};
char **cp[]={c+3,c+2,c+1,c};
char ***cpp=cp;
int main(void)
{
 	printf("%s   ",**++cpp);//POINT   ++cpp
  	printf("%s    ",*--*++cpp+3);// ER  
  	printf("%s    ",*cpp[-2]+3);//ST
	printf("%s\n",cpp[-1][-1]+1);//EW
			return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

c语言之指针与数组

标签:c语言   指针   数组   数组指针   指针数组   

原文地址:http://blog.csdn.net/fujinlong520/article/details/48084943

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!