c语言(int*p),浅析int*p[ ]与int(*p)[ ]的区别
举例说明:1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型。可以这样来用:
#include
using namespace std;
int main(int argc, char* argv[])
{
int* p[2];
int a[3] = {1, 2, 3};
int b[4] = {4, 5, 6, 7};
p[0] = a;
p[1] = b;
for(int i = 0; i < 3; i++)
cout << *p[0] + i;// cout << **p + i;
cout << endl;
for(i = 0; i < 4; i++)
cout << *p[1] + i;// cout << **p + i;
return 0;
}
2)对于 int (*p)[2], 它相当于一个二维数组的用法,只是它是一个n行2列的数组,可以这样来用:
#include
using namespace std;
void main() {
int (*p)[2];
int b[3][2] = {{1, 2}, {3, 4}, {5, 6}};
p = b;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 2; j++) //cout << p[i][j]; //cout << *(*(p+i)+j);
cout << endl;
}
}
注意:(1)为行数确定、列数不确定,即为2*n型的。
(2)为n*2型的数组的指针用法,即行数不确定、列数确定。
对于(1)其等价形式如下:
#include
using namespace std;
void main() {
int** array;
array = new int* [2];
int a[3] = {1, 2, 3};
int b[4] = {4, 5, 6, 7};
array[0] = a; // *array = a;
array[1] = b; // *(array+1) = b;
for(int i = 0; i < 3; i++) cout << array[0][i];// cout << *array[0] + i;
cout << endl;
for(int j = 0; j < 4; j++) cout << array[1][j];// cout << *array[1] + j;
}
其实以上用法即这我们常用的动态二维数组的用法。
c语言(int*p),浅析int*p[ ]与int(*p)[ ]的区别相关推荐
- c语言map函数k v都是int,Go语言sync.Map(在并发环境中使用的map)
Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的. 下面来看下并发情况下读写 map 时会出现的问题,代码如下: // 创建一个int到int的映射 m := make(m ...
- c语言int转换成float,int怎么转化为float 将 int型变量n转换成float型变量的方法是...
请问C语言中如何将int转换为float 将 int型变量n转换成float型变量的方法是 A float n B (float )n C float( n) D( float) ( n)不懂小编的人 ...
- C语言学习(八)整数(int、short、long)的具体介绍、不同进制表示、输出,sizeof、unsinged的使用
整数(int.short.long)的具体介绍.不同进制表示.输出,sizeof.unsinged的使用 int.short.long的用法及区别.为什么要用short.long? 在现代操作系统中, ...
- c语言中计算long,C语言中int、long int、long long的区别
1.关于int 和 long int (1)在VC下没有区别.两种类型均用4个字节存放数据. (2)VC是后出的编译器,之前有很多早期的C编译器,在早期编译器下long int占4个字节,int占2个 ...
- gotoprint函数在c语言,C语言之goto浅析
1. 读代码时遇了的疑惑点: static int do_bind(const char *host, int port, int protocol, int *family) { int fd; ...
- python int函数的实现_python实现int函数的案例分析
python实现int函数的案例分析 发布时间:2020-08-06 14:35:55 来源:亿速云 阅读:88 作者:小新 python实现int函数的案例分析?这个问题可能是我们日常学习或工作经常 ...
- c语言程序越界,浅析C语言编程中的数组越界问题
因为C语言不检查数组越界,而数组又是我们经常用的数据结构之一,所以程序中经常会遇到数组越界的情况,并且后果轻者读写数据不对,重者程序crash.下面我们来分析一下数组越界的情况: 1) 堆中的数组越界 ...
- c语言中 static int,c语言中static unsigned int n=0;是什么意思?请大师指点迷津,学生有礼了。...
c语言中static unsigned int n=0;是什么意思?请大师指点迷津,学生有礼了.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我 ...
- java int 运算符_Java 位运算符和 int 类型的实现
Java 位运算符和 int 类型的实现 其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.=.<= # 逻辑运算符 && ...
最新文章
- Openresty最佳案例 | 第7篇: 模块开发、OpenResty连接Redis
- Kudu:为大数据快速分析量身定制的 Hadoop 存储系统
- HDU 1875 畅通工程再续
- Android安全笔记-Service基本概念
- 【英语学习】【Level 07】U05 Best Destination L6 Paradise on Earth
- vi/vim的使用方法及常用的快捷键--vimer们的福音
- mysql instead of触发_Instead of触发器
- 中南大学 科学计算与MATLAB语言 11矩阵求值
- RabbitMQ 线上事故!慌的一批,脑袋一片空白……
- 构建WebIM聊天程序
- python与开源_Python与开源GIS
- CTF逆向(Reverse)知识点总结
- web服务器软件有哪些?带你快速了解
- 关于词嵌入(Word Embedding)的一些总结
- 面纱星云的西面纱中的女巫帚星云
- xor指令加解密(笔记)
- K8S理论篇----K8S的概述
- java图片马赛克_朋友圈照片打上马赛克,就真的安全了吗?
- JavaScript:探索神秘的旁门左道奇淫技巧
- JBPM的一些基本概念