深入解析int(*p)[]和int(**p)[]
1. int(*p)[10]:
根据运算符的结合律,()的优先级最高,所以p是一个指针,指向的一个维度为10的一维数组。
p一个指向数组的某一行
代码如下:
int a[1][4]={1,2,3,4};
int (*p)[4] = a;//p point to the row of array a
for(int i=0;i<4;i++)
{
cout<<*((*p)+i)<<" ";
}
2. int(**q)[10]
这个的意义:q是一个指针,指向的元素就是1.中的p.
下面给一个例子:
代码如下:
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a[2][2]={1,2,3,4};
int (*p)[2] = a;//p point to the row of array a
for(int i = 0;i<2;i++)//output matrix using p
{
for(int j = 0;j<2;j++)
{
cout<<*(*(p+i)+j)<<" ";
}
cout<<endl;
}
int (**q)[2] = &p;//q point to p
for(int i = 0;i<2;i++)//output matrix using q
{
for(int j = 0;j<2;j++)
{
cout<<*(*(*q+i)+j)<<" ";
}
cout<<endl;
}
getchar();
return 0;
}
相关推荐
-
深入const int *p与int * const p的区别详解(常量指针与指向常量的指针)
对于指针和常量,有以下三种形式都是正确的: 复制代码 代码如下: const char * myPtr = &char_A;//指向常量的指针char * const myPtr = &char_A;//常量的指针const char * const myPtr = &char_A;//指向常量的常量指针 下面依次对这三种类型进行介绍.因为*操作符是左操作符,左操作符的优先级是从右到左,对于1.常量指针(Constant Pointers) 复制代码 代码如下: int * con
-
mysql int(3)与int(11)的区别详解
mysql int(3)与int(11)的区别 总结,int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加zerofill,则它们没有什么区别.M不是用来限制int个数的.int(M)的最大值和最小值与undesigned有关,最下面那副图有说明. mysql> create table t (t int(3) zerofil
-
浅析int*p[ ]与int(*p)[ ]的区别
举例说明:1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型.可以这样来用: 复制代码 代码如下: <SPAN style="BACKGROUND-COLOR: rgb(255,255,255)">#include <iostream>using namespace std;int main(int argc, char* argv[]) {int* p[2];int a[3] = {1, 2, 3};in
-
c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别详解
本文对c#中(int).int.Parse().int.TryParse.Convert.ToInt32的区别进行了较为深入的详细分析,对初学者而言可以起到巩固学习的目的.详情如下: 一.(int)变量名[强制类型转换]: 该转换方式主要用于数字类型转换,从int类型到long,float,double,decimal类型,可以使用隐式转换,但是从long类型到int类型就需要使用显式转换,也就是该数据类型转换方式,否则会产生编译错误. 该方式对于浮点数会做无条件舍去,失去精确度. 当然,该方式
-
C++ Primer中&、*符号的多重定义与int *p和int* p的区别讲解
& 和*这样的符号,既能用作表达式里的运算符,也能作为声明的一部分出现,符号的上下文决定了符号的意义: int i = 42; int &r = i; //&紧随类型名出现,因此是声明的一部分,r是一个引用 int *p; //*紧随类型名出现,因此是声明的一部分,p是一个指针p p = &i; //&出现在表达式中,是一个取地址符 *p = i; //*出现在表达式中,是一个解引用符 int &r2 = *p; //&是声明的一部分,*是一个解引用
-
mysql中int(3)和int(10)的数值范围是否相同
目录 提问: 回答: 真实情况: 知识点 结论: 总结 提问: mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同.如果不同,分别是多大? 回答: 不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数. 如果你的答案和上面的一致,恭喜你和我犯了一样的错误. 真实情况: int类型整数占4个字节,有符号的范围为:-2^31 ~ 2^31-1,无符号整数范围为:0 ~ 2^32-1,既然都是无符号整数,那么存储范围是
-
MySQL中int (10) 和 int (11) 的区别
mysql 中整数数据类型: 不同类型的取值范围: 不同数据类型的默认v显示宽度: 显示的宽度跟负号没有关系,它只在人工设置了 ZEROFILL 属性有效.一旦人工设置了 ZEROFILL 属性,MySQL 会自动设置 UNSIGNED 属性(即 ZEROFILL 不能存储负数). 那取值范围和显示宽度到底有什么关系呢?利用 tinyint 做了个实验, 首先创建一张表如下: mysql> desc test_integer; +-----------+------------+------+-
-
浅谈mysql中int(1)和int(10)的区别
目录 困惑 数据说话 零填充 总结 困惑 最近遇到个问题,有个表的要加个user_id字段,user_id字段可能很大,于是我提mysql工单alter table xxx ADD user_id int(1).领导看到我的sql工单,于是说:这int(1)怕是不够用吧,接下来是一通解释. 其实这不是我第一次遇到这样的问题了,其中不乏有工作5年以上的老司机.包括我经常在也看到同事也一直使用int(10),感觉用了int(1),字段的上限就被限制,真实情况肯定不是这样. 数据说话 我们知道在mys
-
详细深入聊一聊Mysql中的int(1)和int(11)
目录 前言 正文 java mysql 总结 前言 首先在吐槽这个现象前,我先说下我们该篇的内容. 1. int 类型表字段 在mysql数据库里面,到底存值的范围是多少 ? 什么时候是 -2147483648到 2147483647 什么时候是 0 到4294967295 2. int (1) int(11) 这个括号后面的玩意,对于int来说 作用是什么? int(1) 就只能存入 0,1,2,3,4,5,6,7,8,9 吗?是这样理解??? 我存个10不行? 可能对这些概念很清晰的
-
MySQL中int(10)和int(11)的区别详解
目录 一.背景 二.MySQL整数类型 总结: 一.背景 在创建数据库表的时候,我们经常会用到int(x)来定义一个字段的类型,一直误以为这里的x表示存储数字的长度. 其实大错特错,这里的 x 指的是 最大显示宽度(最大有效显示宽度是255),且显示宽度与存储大小或类型包含的值的范围无关. 二.MySQL整数类型 类型 字节 取值范围 显示宽度 tinyint 1 -128 ~ 127 4 smallint 2 -32768 ~ 32767 6 mediumint 3 -8388608 ~ 83
随机推荐
- jQuery使用animate创建动画用法实例
- 纯js实现无限空间大小的本地存储
- IOS开发网络篇—Socket编程详解
- Mac Android Studio快捷键整理
- 谈谈JavaScript数组常用方法总结
- PHP iconv 解决utf-8和gb2312编码转换问题
- 详解mysql建立索引的使用办法及优缺点分析
- PHPExcel读取EXCEL中的图片并保存到本地的方法
- Android环形进度条(安卓默认形式)实例代码
- js中encode、decode的应用说明
- JavaScript中数据类型转换总结
- node.js中的fs.close方法使用说明
- web服务器程序运行出现乱码问题的解决方法
- Oracle 11g Dataguard参数详解
- JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
- php简单实现单态设计模式的方法分析
- Android编程监听APK安装与删除等过程的方法
- Linux定时执行任务at和crontab命令详解
- android仿支付宝密码输入框效果
- Swift Json实例详细解析