課程
/后端開發
/C
/C語言入門
C語言關于指針的問題
2016-12-08
源自:C語言入門 6-7
正在回答
結果是-12.
-------------
代碼如下:
#include?<stdio.h> int?main() { ?int?m[20]?=?{?0,0?}; ??int?*p?=?&m[5]; ?int?*q?=?m?+?17; ?int?n?=?p?-?q; ??printf("%d",?n); ?return?0; ?}
---------------???
int m[20].*p=&m[5].*q=m+17.n. n=p-q;求n的值
這是一道關于數組指針的題。我們逐步分析。
首先定義了長度為20的整型數組m,接著定義整型指針p指向m的第6個元素m[5],此時p中存儲著m[5]的地址。
接著定義q,并對p進行指針加減。我們知道,指針加減法中,加減的是元素個數而非地址本身。
又因為q=m+17,我們知道數組中m[],當數組名m單獨出現時,其含義為數組m的第一個元素即m[0]。此題的精妙之處就在此。
因此q為第(0+17)個元素的地址,即m[17]的地址。
p與q相減,得到(-12)個元素。
答案為-12.
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答n<m,為什么m==n
1 回答#include <stdio.h> int main() { int m, n; for(m=3; m<=50; m++) { for(n=2; n<m; n++) { if(m%n==0) //什么條件下跳出當前循環 break; //這里應該退出當前循環了 } if(m == n) //n循環結束后,如果m=n的話就輸出m
2 回答for(n=2; n<m; n++)
3 回答for(n=2; n<m; n++)的n<m是什么意思
1 回答if(!(m%n))
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-12-10
結果是-12.
-------------
代碼如下:
---------------???
int m[20].*p=&m[5].*q=m+17.n. n=p-q;求n的值
這是一道關于數組指針的題。我們逐步分析。
首先定義了長度為20的整型數組m,接著定義整型指針p指向m的第6個元素m[5],此時p中存儲著m[5]的地址。
接著定義q,并對p進行指針加減。我們知道,指針加減法中,加減的是元素個數而非地址本身。
又因為q=m+17,我們知道數組中m[],當數組名m單獨出現時,其含義為數組m的第一個元素即m[0]。此題的精妙之處就在此。
因此q為第(0+17)個元素的地址,即m[17]的地址。
p與q相減,得到(-12)個元素。
答案為-12.