C++中全局变量的值需要改变怎么办 C++如何在局部函数中改变定义的全局变量的值?

\u5982\u4f55\u5728C++\u4e2d\u8bbe\u7f6e\u5168\u5c40\u53d8\u91cf\uff1f

1\u3001\u9996\u5148\uff0c\u5b9a\u4e49\u4e00\u4e2a\u5b9e\u73b0\u52a0\u6cd5\u8fd0\u7b97\u81ea\u5b9a\u4e49\u51fd\u6570\u3002

2\u3001\u63a5\u7740\uff0c\u5b9a\u4e49\u4e00\u4e2a\u5b9e\u73b0\u4e58\u6cd5\u8fd0\u7b97\u7684\u81ea\u5b9a\u4e49\u51fd\u6570\u3002

3\u3001\u6700\u540e\uff0c\u5728\u4e3b\u51fd\u6570\u4e2d\u5b9e\u73b0\u7a0b\u5e8f\u7684\u8fd0\u7b97\u3002

4\u3001\u5b9a\u4e49\u5728\u51fd\u6570\u5916\u90e8\u6ca1\u6709\u88ab\u82b1\u62ec\u53f7\u62ec\u8d77\u6765\u7684\u53d8\u91cf\u79f0\u4e3a\u5168\u5c40\u53d8\u91cf\uff0c\u5168\u5c40\u53d8\u91cf\u7684\u4f5c\u7528\u57df\u4ece\u53d8\u91cf\u5b9a\u4e49\u7684\u4f4d\u7f6e\u5f00\u59cb\u4e00\u76f4\u5230\u6587\u4ef6\u7ed3\u675f\u3002

5\u3001\u5982\u679c\u5728\u4e00\u4e2a\u7a0b\u5e8f\u4e2d\u591a\u4e2a\u51fd\u6570\u90fd\u8981\u5bf9\u540c\u4e00\u4e2a\u53d8\u91cf\u8fdb\u884c\u5904\u7406\uff0c\u53ef\u4ee5\u5c06\u8fd9\u4e2a\u53d8\u91cf\u5b9a\u4e49\u6210\u5168\u5c40\u53d8\u91cf\uff0c\u4f8b\u5982\u672c\u4f8b\u4e2d\u81ea\u5b9a\u4e49\u51fd\u6570product\u548c\u4e3b\u51fd\u6570\u90fd\u7528\u5230\u4e86\u5168\u5c40\u53d8\u91cf\u3002

6\u3001\u8fd0\u884c\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u770b\u5230\u5168\u5c40\u53d8\u91cf\u5bf9\u6587\u4ef6\u4e2d\u4f4d\u4e8e\u5168\u5c40\u53d8\u91cf\u5b9a\u4e49\u540e\u9762\u7684\u4efb\u4f55\u51fd\u6570\u90fd\u8d77\u4f5c\u7528\u3002

\u76f4\u63a5\u4fee\u6539\u5c31\u884c\u554a
\u5168\u5c40\u53d8\u91cf\u5168\u5c40\u90fd\u53ef\u89c1\uff0c\u5c40\u90e8\u51fd\u6570\u5185\u4e5f\u53ef\u89c1\u3002
\u5982\u679c\u4f60\u8bf4\u7684\u662f\u5c40\u90e8\u51fd\u6570\u7684\u53c2\u6570\u548c\u5168\u5c40\u53d8\u91cf\u540c\u540d\u7684\u90a3\u79cd\u60c5\u51b5\u7684\u8bdd\uff0c\u4fee\u6539\u5168\u5c40\u53d8\u91cf\u65f6\uff0c\u9700\u8981\u7528\u5355\u76ee\u8fd0\u7b97\u7b26\uff1a\uff1a
\u6bd4\u5982\u8bf4\u5168\u5c40\u53d8\u91cf\u540d\u4e3atemp\uff0c\u90a3\u4e48\u5c31\u8981\u5199\u6210::temp\u3002
\u4fe1\u606f\u67e5\u8be2\u6765\u6e90\uff1a
http://topic.csdn.net/u/20101102/11/18047201-9e89-451d-a93a-a8b31223f2ef.html

声明为 const 的量初始化后,它的数值在程序中是不允许改变的,因为它不可为左值。例如: const int lane = 1000; const int v_max = 18; 数值在程序中是不允许改变。
若要变,只能声明为非 const。 例如:
int lane = 1000, v_max = 18;
全局量 v 用指针: int *v;
在程序中动态分配为数组。分配前,你可以改变 lane 的值 (赋值,输入都可)。例: lane=80;
v = new int[lane];
for (i = 0; i < lane; i++) v[i] = -1;
使用完毕,若想改变 v 数组大小,你可以 delete[] v; 然后 改变 lane 的大小,重新动态分配 v = new int[lane];

1.一般情况下,直接用就可以了; 2.如果这个局部函数里有和该全局变量同名的变量,那就把局部变量改成另外一个名字; 3.如果这个全局变量在其他文件里,那么先到定义它的地方加上extern关键字。

首先car_num定义成全局变量的目的是什么,其次你改变car_num目的又是什么。先理清逻辑,再学语法。全局变量的值需要改变那直接改就是,但问题的关键是你得知道你想干嘛

for (car_num = 10; car_num < 20; car_num + 10),少写了等于号?
for (car_num = 10; car_num < 20; car_num += 10)

帮你修一下代码,你看一下是不是你想要的效果;

模拟的数据会被输出到 d:\-s.txt 文件中;如下图

#include<iostream>
#include<fstream>
#include<ctime>
#include<string>
#include<stdlib.h>

using namespace std;

const int lane = 1000;
const int v_max = 18;
int v[lane];

int car_num;
int p[200];


void inicars()
{
FILE *gg;
gg = fopen("d:\-s.txt", "a");
int i, j, k;
int temp_1, temp_2 = 0;
int n = 0;

for (i = 0; i < lane; i++)
v[i] = -1;

for (i = 0; i < car_num; i++)
{
v[temp_2] = rand() % (v_max + 1);
temp_2 = temp_2 + 6; //表示的速度是车尾速度,v[位置]=speed
}

for (i = 0; i<lane; i++)
{
if (v[i] >= 0)
{
p[n] = i; // 
n++;
}
}
for (i = 0; i < car_num; i++)
{
fprintf(gg, "num=%2d,loc=%2d,speed=%2d
", i, p[i], v[p[i]]);
// fprintf(gg, "
");
printf( "num=%2d,loc=%2d,speed=%2d
", i, p[i], v[p[i]]);
}


fclose(gg);
}

int main()
{
for (car_num = 1; car_num < 20; car_num++ )
{
srand(time(NULL));
inicars();
}

return 0;
}



  • 浠ヤ笅c绋嬪簭涓轰粈涔堣鍑芥暟鍙互淇敼鍏ㄥ眬鍙橀噺鐨勫
    绛旓細鍥犱负鏄鍏ㄥ眬鍙橀噺锛屾墍浠ュ彲浠ヤ慨鏀广備綘璇寸殑浣跨敤鎸囬拡淇敼鏄瀹炲弬淇敼锛岃繖瀹屽叏涓嶆槸涓鍥炰簨銆
  • c璇█鍑芥暟鍐呴儴瀵鍏ㄥ眬鍙橀噺杩涜璧嬪,鍏ㄥ眬鍙橀噺鍙戠敓鍙樺寲鍚
    绛旓細鏄殑锛屽湪浠讳竴鍑芥暟 瀵鍏ㄥ眬鍙橀噺 杩涜璧嬪 閮藉彲鏇存柊瀹鐨勫銆(闄や簡杩欎釜鍏ㄥ眬鍙橀噺宸插0鏄庝负 const 鍨嬨傚const 鍨嬶紝涓嶈兘閲嶆柊璧嬪笺傦級
  • C璇█杩愯杩囩▼涓慨鏀鍙橀噺
    绛旓細C璇█鏄竴绉嶅己绫诲瀷璇█锛岃姹傚湪浣跨敤鏁版嵁鍓嶉渶瑕佸鏁版嵁鐨勭被鍨嬭繘琛屽0鏄庯紱鍙橀噺鐨瀹氫箟灏辨槸鍒涘缓涓涓彉閲忥紝杩欎釜鍙橀噺鎸夌収鎸囧畾鐨勬暟鎹被鍨嬪垎閰嶄竴鍧楀唴瀛樼┖闂村苟缁欏畠鍙栦笂涓涓悕瀛楋紝杩欎釜鍚嶅瓧灏辨槸鍙橀噺鍚嶏紝鍙橀噺鍚嶅拰鍒嗛厤鐨勫唴瀛樺潡鏄粦瀹氳捣鏉ョ殑锛岀▼搴忓憳閫氳繃鍙橀噺鍚嶅杩欏潡鍐呭瓨杩涜瀛樺彇鎿嶄綔銆傛墍浠ュ鏋滀慨鏀逛簡鍙橀噺鍚嶅氨涓嶇煡閬撹鍙橀噺...
  • 鍦c璇█涓 涓轰綍涓涓鍏ㄥ眬鏁扮粍鐨勫浼鍙樺寲 鎴栬呰 濡備綍瀹氫箟涓涓湁纭畾鍊...
    绛旓細for (i=0;i<10;i++){Row = rand()%9;Col = rand()%9;if (mine[Row][Col]==2)i--;mine[Row][Col] = 1;}//瀵逛簬鍏ㄥ眬鍙橀噺锛屽鏋滃嚱鏁颁腑閲嶅瀹氫箟鍒欎細瑕嗙洊鍏ㄥ眬鍙橀噺锛屽鑷翠富鍑芥暟鍜岃皟鐢ㄥ嚱鏁涓殑鍊涓嶅悓銆// int x, y; printf("璇疯緭鍏");// scanf("%d %d", &x, &y);Play(...
  • 璇锋暀鍏ㄥ眬鍙橀噺鍜屽瀹冪殑淇敼鐨勯棶棰
    绛旓細鍏ㄥ眬鍙橀噺鏄潤鎬佸瓨鍌ㄧ殑锛屾枃浠朵腑鐨勪换浣曚竴涓嚱鏁伴兘鍙互鏀瑰彉瀹鐨勫銆傝繖鏄鐨勩 鍏ㄥ眬鍙橀噺涔熺О涓哄閮ㄥ彉閲忥紝瀹冩槸鍦ㄥ嚱鏁板閮ㄥ畾涔夌殑鍙橀噺銆 瀹冧笉灞炰簬鍝竴涓嚱鏁帮紝瀹冨睘浜庝竴涓簮绋嬪簭鏂囦欢銆傚叾浣滅敤鍩熸槸浠庡畾涔夎鍙橀噺鐨浣嶇疆寮濮嬭嚦婧愭枃浠剁粨鏉熴 鍏ㄥ眬鍙橀噺鏄湪鎵鏈 ...
  • 鍏ㄥ眬鍙橀噺鐨勫浼氬彉鍚?
    绛旓細鍏ㄥ眬鍙橀噺鐨勫鍦ㄧ▼搴忚繍琛岃繃绋嬩腑閬囨湁鏀瑰彉瀹冨肩殑璧嬪艰繃绋嬶紝褰撶劧浼氬彂鐢鍙樺寲銆傚叏灞鍙橀噺鏄紪绋嬫湳璇腑鐨勪竴绉嶏紝婧愯嚜浜庡彉閲忎箣鍒嗐傚彉閲忓垎涓哄眬閮ㄤ笌鍏ㄥ眬锛屽眬閮ㄥ彉閲忓張鍙О涔嬩负鍐呴儴鍙橀噺銆傜敱鏌愬璞℃垨鏌愪釜鍑芥暟鎵鍒涘缓鐨勫彉閲忛氬父閮芥槸灞閮ㄥ彉閲忥紝鍙兘琚唴閮ㄥ紩鐢紝鑰屾棤娉曡鍏跺畠瀵硅薄鎴栧嚱鏁板紩鐢ㄣ傚叏灞鍙橀噺鏃㈠彲浠ユ槸鏌愬璞″嚱鏁板垱寤猴紝...
  • C璇█,鍏ㄥ眬鎸囬拡鍙橀噺鍙互琚慨鏀瑰悧?
    绛旓細鍙互.绋嬪簭渚嬪瓙:include <stdio.h> include <stdlib.h> int *p;main(){ int a,b;p=&a;printf("%p a=%p\n",p,&a);p=&b;printf("%p b=%p\n",p,&b);return 0;} 00 鎴戠殑璁$畻杈撳嚭锛0012FF7C a=0012FF7C 0012FF78 b=0012FF78 ...
  • C璇█涓殑鍏ㄥ眬鍙橀噺涓轰粈涔堝湪绋嬪簭杩愯杩囩▼涓嚜鍔鏀瑰彉浜
    绛旓細鏈変袱绉嶅彲鑳 涓绉嶆槸 鍦ㄦ煇澶 瀵瑰叾璧嬪间簡 鍥犱负鍏ㄥ眬鍙橀噺鏄瘡涓嚱鏁伴兘鍙互璁块棶鐨 鏈夊彲鑳藉湪鏌愬 瀵瑰畠璧嬪 浣犳病娉ㄦ剰鍒般傚彟涓绉嶅彲鑳 灏辨槸鍑虹幇浜嗚秺鐣岋紝瀵艰嚧鏌愪釜鎿嶄綔锛岃闂簡鍏ㄥ眬鍙橀噺鐨鍐呭瓨骞鏀瑰彉浜嗗笺 杩欎釜灏辨瘮杈冮毦鏌ヤ簡銆
  • c璇█涓,瀹氫箟涓涓鍏ㄥ眬鍙橀噺,鍦ㄤ竴涓瓙鍑芥暟涓敼鍙浜嗗,鎬庝箞鍦ㄤ笅涓涓嚱鏁...
    绛旓細浣犻兘璇存槸鍏ㄥ眬鍙橀噺浜嗭紝鍦ㄤ换浣曞湴鏂归兘鍙互璁块棶瀹冿紝鍙槸瑕佹敞鎰忓湪澶氱嚎绋嬩笅鍙栧畠鍊肩殑鏃跺欏畠鏄惁宸茬粡鏀瑰彉浜嗗硷紝鏀瑰彉鐨勬椂鍊欏彲浠ヨ涓涓爣蹇楀彉閲忋
  • 浠ヤ笅c绋嬪簭涓轰粈涔堣鍑芥暟鍙互淇敼鍏ㄥ眬鍙橀噺鐨勫
    绛旓細鍑芥暟鍐呰淇敼鍑芥暟澶鐨勫涓嶆槸鍙兘鐢ㄦ寚閽堝彉閲忓悧锛熶笉鐢ㄦ寚閽堜笉鏄敼涓嶄簡鍚 鍑芥暟鍐瑕佹敼鍙鍑芥暟澶栫殑鍊硷紝鍙互閫氳繃鎸囬拡鍙橀噺锛屼篃鍙互閫氳繃鍏ㄥ眬鍙橀噺銆傛垜浼拌浣犵悊瑙i敊璇簡锛屼竴涓嚱鏁拌鏀瑰彉銆愬嚱鏁板弬鏁般戠殑鍊硷紝鍙兘閫氳繃鎸囬拡鍙橀噺鏀瑰彉銆傚彲鑳戒綘璇В浜嗐愬嚱鏁板弬鏁般(鍙傛暟鎷疯礉)鍜屻愬嚱鏁板鐨勫笺戜簡 濡 int x1,int x2;void ...
  • 扩展阅读:小熊猫c++怎么改背景颜色 ... const变量必须初始化 ... c ++如何改输出字体大小 ... dev小熊猫改颜色 ... 小熊猫c++怎么换颜色 ... c#switch判定成绩 ... c中变量三要素 ... c++中全局变量怎么声明 ... c++ 尽量不使用全局变量 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网