久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2243|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)教C語(yǔ)言中的程序算法理解問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:521921 發(fā)表于 2019-7-16 11:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
各位師兄,如下一段程序中,為什么a = 3,而不是4呢? p=9又是怎么算來(lái)的?麻煩幫小弟理解下這段程序的算法,謝謝!

#include<stdio.h>
int c, a=4;
int func(int a, int b)
{
   c = a*b;
   a = b-1;
   b++;
   return(a+b+1);
}
void main()
{
int b=2,p=0,c=1;
p = func(b , a);
print("%d,%d,%d,%d\n",a,b,c,p);
}


程序運(yùn)行結(jié)果為:3,2,1,9;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:584967 發(fā)表于 2019-7-16 12:30 | 只看該作者
不同的編譯器運(yùn)行環(huán)境不一樣吧,我用的DEV C++,運(yùn)行結(jié)果就是3,2,1,9
回復(fù)

使用道具 舉報(bào)

板凳
ID:215929 發(fā)表于 2019-7-16 12:55 | 只看該作者
在線學(xué)習(xí),哈哈
回復(fù)

使用道具 舉報(bào)

地板
ID:277550 發(fā)表于 2019-7-16 13:51 | 只看該作者
vc 2008/2015 都是

4,2,1,9
回復(fù)

使用道具 舉報(bào)

5#
ID:183159 發(fā)表于 2019-7-16 14:17 | 只看該作者
這是我的運(yùn)行結(jié)果
4,2,1,9
a很顯然是4,p為什么是9,因?yàn)閞eturn(a+b+1)的時(shí)候,a=3,b=5,自然是9.
回復(fù)

使用道具 舉報(bào)

6#
ID:565305 發(fā)表于 2019-7-16 15:36 | 只看該作者
a 在前面定義成全局變量,但是在函數(shù)里頭又有同名的局部變量

按道理 全局變量為大; 局部變量只影響它所在的域,試過(guò)一下 vc6 vc2013 都是很標(biāo)準(zhǔn)的 a=4 , 符合常規(guī)思路

雖然 dev c 用的是 gcc ,我猜想這個(gè)編譯器的思路是, 要想用到全局的 a 需要 ::a 方式 才能引用到吧
回復(fù)

使用道具 舉報(bào)

7#
ID:584980 發(fā)表于 2019-7-16 15:46 | 只看該作者
a是全局變量,在函數(shù)傳參時(shí)是值傳遞,其本身是不會(huì)被改變的,詳情百度 【值傳遞】【地址傳遞】區(qū)別
回復(fù)

使用道具 舉報(bào)

8#
ID:219796 發(fā)表于 2019-7-16 15:51 來(lái)自觸屏版 | 只看該作者
a是全局變量,調(diào)用子程序中a=b-1這句a=4-1被改變了值
回復(fù)

使用道具 舉報(bào)

9#
ID:473377 發(fā)表于 2019-7-16 16:28 | 只看該作者
我用的CODE:BLOCKS得到的結(jié)果是4.2.1.9,a可能是由于編譯環(huán)境不同而不同的,在main函數(shù)中p = func(b,a)就是將b = 2,a = 4賦給了func函數(shù)作為實(shí)參,即使得func中int a = 2,int b = 4,return返回的結(jié)果為9,即main函數(shù)中p等于9
回復(fù)

使用道具 舉報(bào)

10#
ID:565305 發(fā)表于 2019-7-16 18:34 | 只看該作者
sldx 發(fā)表于 2019-7-16 15:51
a是全局變量,調(diào)用子程序中a=b-1這句a=4-1被改變了值

你可能漏看了 int func(int a, int b)  這個(gè)地方,在入口參數(shù)處定義了 int a 這個(gè)局部變量

所以這個(gè)是編譯器問(wèn)題,我在 vc 兩個(gè)版本都試過(guò)是 4 2 1 9 ,而不是 dev c++ 的 3 2 1 9
回復(fù)

使用道具 舉報(bào)

11#
ID:388197 發(fā)表于 2019-7-16 18:39 | 只看該作者
這種風(fēng)格的變量,函數(shù)命名老譚的書(shū)上最多.而且還沒(méi)有標(biāo)準(zhǔn)答案,不同的編譯器編譯出來(lái)的結(jié)果不一樣,如果不是為了考試,去鉆研這些問(wèn)題實(shí)在是浪費(fèi)時(shí)間,,趕快把老譚的C語(yǔ)言的書(shū)丟垃圾桶,讀讀<C PRIMER>避免這種問(wèn)題很簡(jiǎn)單, 注意不要把函數(shù)的傳遞參數(shù)和全局變量同名就好了,而且記住你是在寫程序不是在寫數(shù)學(xué)教材,變量 函數(shù)的名字應(yīng)該有實(shí)際的含義.趁初學(xué)趕快把習(xí)慣憋過(guò)來(lái),否則到后面壞習(xí)慣養(yǎng)成,想改就難了.
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产在线永久免费 | 久久久一| 欧美性猛交一区二区三区精品 | 91视频久久 | 美日韩免费视频 | 成人三级视频在线观看 | 一区二区三区视频在线免费观看 | 国产精品久久久久久久久久久久久 | 97人人超碰| 欧美日韩不卡合集视频 | 欧美精品综合在线 | 久久蜜桃av一区二区天堂 | 亚洲精品黄色 | 国内精品久久久久久久 | 日韩午夜一区二区三区 | 精品国产乱码久久久久久牛牛 | 亚洲精品一区二区三区蜜桃久 | 亚洲精品成人网 | 69av在线视频| 九九综合| 伊人无码高清 | 免费视频99| 欧美一区二区三区在线观看视频 | 黄色网址大全在线观看 | 日韩国产一区二区三区 | 欧美综合国产精品久久丁香 | 精品亚洲一区二区三区 | 欧美 日韩 国产 成人 在线 | 黄a网 | 国产一区二区三区久久久久久久久 | 中文字幕视频在线免费 | 日本午夜视频 | 午夜国产一级 | 日韩在线播放网址 | 亚洲h视频| 日本精品久久久久久久 | 欧美成人精品一区二区男人看 | 成人精品一区二区三区四区 | 欧美一级免费看 | 91社区视频 | 在线一区二区三区 |