欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言中全局?jǐn)?shù)組和局部數(shù)組的問題

 更新時間:2012年12月09日 18:33:54   作者:  
今天同學(xué)遇到一個在C語言中全局?jǐn)?shù)組和局部數(shù)組的問題,卡了許久,我也沒有第一時間看出問題,現(xiàn)在把問題梳理一下,并給出解決方案,需要的朋友可以參考下
今天同學(xué)遇到一個在C語言中全局?jǐn)?shù)組和局部數(shù)組的問題,卡了許久,我也沒有第一時間看出問題,現(xiàn)在把問題梳理一下,并給出解決方案。
問題描述
在全局聲明的數(shù)組與在局部聲明的數(shù)組有著不同的效果。
首先來看一個程序:
復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <stdlib.h>
#define MAX 10
char a[MAX];
int main()
{
int i;
char b[MAX];
char *c=(char *)malloc(MAX * sizeof(char));
printf("\nArray a:\n");
for(i=0;i<MAX;i++)
printf("%d ",a[i]);

printf("\nArray b:\n");
for(i=0;i<MAX;i++)
printf("%d ",b[i]);

printf("\nArray c:\n");
for(i=0;i<MAX;i++)
printf("%d ",c[i]);
printf("\nDone");
free(c);
return 1;
}

編譯運行結(jié)果:
 
程序主要功能是打印字符數(shù)組的Ascii碼??梢园l(fā)現(xiàn)全局?jǐn)?shù)組a和動態(tài)生成的數(shù)組c有著相同的結(jié)果,而局部聲明的數(shù)組b確被分配了隨機(jī)的數(shù)值,也許這就是問題的所在。
解決方案:
復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <stdlib.h>
#define MAX 10
char a[MAX]={0};
int main()
{
int i;
char b[MAX]={0};
char *c=(char *)malloc(MAX * sizeof(char));
printf("\nArray a:\n");
for(i=0;i<MAX;i++)
printf("%d ",a[i]);

printf("\nArray b:\n");
for(i=0;i<MAX;i++)
printf("%d ",b[i]);

printf("\nArray c:\n");
for(i=0;i<MAX;i++)
printf("%d ",c[i]);
printf("\nDone");
free(c);
return 1;
}

運行結(jié)果:
 
在數(shù)組的初始化中,假設(shè)初始化的數(shù)值個數(shù)小于數(shù)組的大小,則全部用0來填充。這里通過初始化一個值,就可以給數(shù)組一個確定的結(jié)果。
(在不同系統(tǒng)和不同的編譯器可能會出現(xiàn)不同的結(jié)果)
還有一個小問題就是C語言中空格的問題,看下面的程序。
復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int main()
{
int i;
char b[MAX]={0};
gets(b);
printf("\nArray b:\n");
for(i=0;i<MAX;i++)
printf("%d ",b[i]);
printf("\nDone");
return 1;
}

 
在這里,我輸入了" int"(三個空格+int),打印的結(jié)果如上圖。
b中前三個記錄了空格的Ascii碼,即32。
b中后面沒有使用的空間依然是0.
打完收工。

相關(guān)文章

  • C/C++堆區(qū)專篇精講

    C/C++堆區(qū)專篇精講

    一直以來總是對這個問題的認(rèn)識比較朦朧,我相信很多朋友也是這樣的,總是聽到內(nèi)存一會在棧上分配,一會又在堆上分配,那么它們之間到底是怎么的區(qū)別呢,讓我們一起來看看
    2022-10-10
  • C++的靜態(tài)成員變量和靜態(tài)成員函數(shù)你了解多少

    C++的靜態(tài)成員變量和靜態(tài)成員函數(shù)你了解多少

    這篇文章主要為大家詳細(xì)介紹了C++的靜態(tài)成員變量和靜態(tài)成員函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C語言 詳細(xì)講解接續(xù)符和轉(zhuǎn)義符的使用

    C語言 詳細(xì)講解接續(xù)符和轉(zhuǎn)義符的使用

    接續(xù)符是用來告訴編譯器行為的符號,那編譯器遇到接續(xù)符是什么行為呢,就是去掉接續(xù)符,然后把下一行連接到現(xiàn)在這行上面,轉(zhuǎn)義符是主要用于表示無回顯字符,也用于表示常規(guī)字符,轉(zhuǎn)義符必須放在單引號或者雙引號里面
    2022-04-04
  • C語言之棧和堆(Stack && Heap)的優(yōu)缺點及其使用區(qū)別

    C語言之棧和堆(Stack && Heap)的優(yōu)缺點及其使用區(qū)別

    本篇文章主要介紹了什么是棧(Stack) 、什么是堆( Heap),以及棧和堆的優(yōu)缺點,同時介紹了應(yīng)該什么時候使用堆和棧,有需要的朋友可以參考下
    2015-07-07
  • C語言實現(xiàn)校運動會項目管理系統(tǒng)

    C語言實現(xiàn)校運動會項目管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)校運動會項目管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 使用C語言實現(xiàn)模糊搜索功能

    使用C語言實現(xiàn)模糊搜索功能

    本文所提到的模糊搜索是指輸入不完整的關(guān)鍵詞即可查詢到對應(yīng)的全部準(zhǔn)確結(jié)果。下面小編通過實例代碼給大家分享使用C語言實現(xiàn)模糊搜索功能,感興趣的朋友一起看看吧
    2018-08-08
  • C++運算符重載詳情介紹

    C++運算符重載詳情介紹

    這篇文章主要介紹了C++運算符重載,C++當(dāng)中除了函數(shù)可以重載之外,其實運算符也是可以重載的,C++根據(jù)操作數(shù)的數(shù)目和類型來決定要使用哪一種操作,下面一起進(jìn)入文章里哦阿姐更多詳情吧
    2022-01-01
  • c++多線程之死鎖的發(fā)生的情況解析(包含兩個歸納,6個示例)

    c++多線程之死鎖的發(fā)生的情況解析(包含兩個歸納,6個示例)

    這篇文章主要介紹了c++多線程之死鎖的發(fā)生的情況解析(包含兩個歸納,6個示例),需要的朋友可以參考下
    2018-01-01
  • C語言數(shù)據(jù)結(jié)構(gòu)之單向鏈表詳解分析

    C語言數(shù)據(jù)結(jié)構(gòu)之單向鏈表詳解分析

    鏈表可以說是一種最為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)了,而單向鏈表更是基礎(chǔ)中的基礎(chǔ)。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護(hù)一組數(shù)據(jù)集合時,就可以使用鏈表,這一點和數(shù)組很相似
    2021-11-11
  • c++加法高精度算法的簡單實現(xiàn)

    c++加法高精度算法的簡單實現(xiàn)

    下面小編就為大家?guī)硪黄猚++加法高精度算法的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09

最新評論