char、char*、char** 数组
来源:互联网 发布:apache tiles3 编辑:程序博客网 时间:2024/05/06 09:57
char s1[10];
s1[0] ,s1[1]等都是char
变量名s1是char*,等同于&s1[0],是首个数组值的地址。
指针数组
char *s2[10];
s2[0] , s2[1]等都是char*;
*s2[0], *s2[1]等都是char,是s2[0] s2[1]指向的字符串的第一个字符;
s2是char**,等同于&s2[0];
char **s3[10];
s3[0] , s3[1]等都是char**;
*s3[0] , *s3[1]等都是char*,是s3[0],s3[1]这些char**指针指向的那个char*指针;
**s3[0], **s3[1]等都是char,是*s3[0] *s3[1]这些char*指针指向的字符串的第一个字符;
s3是char***,等同于&s3[0].
char s1[3];
char*s2[3];
char**s3[3];
s1[0]='1';
s1[1]='2';
s1[2]='3';
s2[0]=&s1[0];
s2[1]=s1;
s3[0]=&s2[0];
s3[1]=s2;
内存中的数据如下图
明确这一点:指针的值就是它所指向的那个地址,对指针做*运算,就是把指针所指向的那个地址的值取出来
s1[0] ,s1[1], s1[2]存放的是字符。
s1这个char*指针的值是0x0012ff60,说明s1这个char*指针指向的地址是0x0012ff60, 这个地址处存放着s1[0]这个字符。
s2[0]是一个char*指针,指向字符串”1234”
*s2[0]是第一个字符 ‘1’
s2这个char**指针的值是0x0012ff4c,说明s2这个char**指针指向的地址是0x0012ff4c,这个地址处存放着一个char*指针,也就是s2[0]。
s2[0]这个char*指针的值是0x0012ff60,和s1这个char*指针的值相同,说明s2[0]这个char*指针指向的地址也是0x0012ff60,这个地址存放着s1[0]这个字符。
s2[0]=&s1[0];
s2[1]=s1;
因为s1等同于&s1[0],所以s2[1]这个char*指针的值也是0x0012ff60。
s3这个char***指针的值是0x0012ff38,说明s3这个char***指针指向的地址是0x0012ff38,这个地址处存放着一个char**指针,也就是s3[0]。
s3[0]这个char**指针的值是0x0012ff4c,和s2这个char**指针的值相同,说明s3[0]这个char**指针指向的地址也是0x0012ff4c,这个地址存放着s2[0]这个char*指针
s3[0]=&s2[0];
s3[1]=s2;
因为s2等同于&s2[0],所以s3[1]这个char**指针的值也是0x0012ff4c
下面是一张简单的示意图
char s1[4]="123";
//char* s2=&s1[0];
char* s2=s1;
char**s3=&s2;
cout<<s2<<endl;
cout<<s3<<endl;
cout<<*s3<<endl;
printf("%d\n",s3);
printf("%x\n",s3);
上面这段代码的输出如下图
(1245012转成16进制就是12ff54)
原文地址:http://blog.sina.com.cn/s/blog_65db99840100lwhs.html- char、char*、char**数组
- char、char*、char**数组
- char、char*、char**数组
- char、char*、char**数组
- char、char*、char** 数组
- char,char*,char**数组
- char、char*、char**数组
- <C>char/char*/char**数组
- char
- Char
- Char
- char
- char
- char
- char
- char
- char**
- char
- RabbitMQ基础概念详细介绍
- ios 录音,播放 tips
- Head first笔记一:策略模式
- FPGA学习文档集合
- androidannotions开发框架在Eclipse中的配置
- char、char*、char** 数组
- 点击键盘周边退出键盘
- jna(jni的坑),java jni native方法去申请native heap 空间
- C/C++术语知识大杂烩
- MAC OSX ConvertToUTF8 安装步骤(解决SublimeText2/SublimeText3显示非UTF8中文乱码问题)
- 理解Java中的弱引用
- CentOS_6.5安装Nginx+PHP+MySQL
- 实时/历史数据库和关系型数据库的区别
- 为树莓派安装配置jdk环境,以及批处理编译