国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

int (*p)[5]分析

2019-11-10 18:05:40
字體:
來源:轉載
供稿:網友

以下代碼容易產生混亂:

int a[3][5] = {1,2,3,4,5,6,7,8,9,10,11,12};	int (*p)[5] = &a;	for(auto i = p; i != p + 3; i++)	{		for(auto j = *i; j != *i + 5; j++)		{			cout<<*j<<" ";		}		cout<<i<<endl;	}

分析:

int (*p)[5];

p不解指針是指向數組的指針,解指針后是指向元素的指針,都是指針,當對p進行賦值后,p 和 *p值是一樣的,只不過類型不一樣,類型不一樣,就會導致加上一個數后,實際的值變化是不一樣的:p + n得到的值是p + n * 5 * sizeof(int);

而*p + n 得到的值是 *p + n * sizeof(int);

這和指向基本類型的指針的道理是一樣的:

int a = 5;

int *p = &a;

char *p1 = (char *)p;

p + n得到的值是 p + n * sizeof(int); p1 + n 得到的是 p + n * sizeof(char);

對p的賦值:

從概念上講,p是指向數組的指針,如果有int a[3][4], p = a[0]是不對的,因為a是指向數組的數組類型,a[0]是數組類型,應該把數組的地址賦值給指向數組的指針;所以正確的賦值應該是:p = &a[0]


上一篇:洛谷

下一篇:運用遞歸函數來轉化進制

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富阳市| 云霄县| 集贤县| 南充市| 翁源县| 新乡市| 乐清市| 江陵县| 荥阳市| 尼木县| 西乡县| 交城县| 抚州市| 贵阳市| 仲巴县| 沿河| 新河县| 泰宁县| 晋江市| 新沂市| 双桥区| 龙江县| 双柏县| 平舆县| 壤塘县| 丹东市| 双柏县| 罗山县| 和田市| 弋阳县| 紫云| 巴马| 综艺| 同仁县| 隆化县| 苏尼特左旗| 涿鹿县| 廉江市| 博野县| 桃江县| 中西区|